1. Priority queue Test Code
2.Lru queue Test Code
3.Map Test Code
map 변경점
일년전에 구현한 코드라 이론을 다시 보면서 틀린 부분을 찾느라 좀 시간이 소요됐다.
1.const char* 특수화 처리함.
이렇게 한 이유는 value를 const char* 로 넣었을 때 소멸자에서 데이터를 처리할때 delete 가 아닌 nullptr 처리하도록 하기 위해서 이다.
일반 포인터는 아래의 특수화로 들어가서 delete data를 수행한다.
2.iterator에 접근해서 GetPtr 받아오지 않고 iterator 내부에서 처리하도록 데이터를 보호함.
기존 코드에서는 Node 데이터 자체를 얻기 위해서 GetCurPtr 함수를 호출했다.
그런데 이렇게 하면 Node Class 의 모든 데이터를 외부에서 제약없이 접근하는 것이 마음에 들지 않았다.
그래서 GetKey, GetValue 로 함수를 나누어서 Node를 반환하는 것이 아니라 값 자체를 반환하도록 하였다.
3.중복 데이터 생길 시 해당 node 를 delete 처리해주도록 함.(node 추가는 원래 안됐고 node delete가 안되어서 leak 됐음.)
4.map 내부에서 node가 삭제될때 value*도 같이 delete 할지 말지 정할수있도록 함.(기본 delete X)
5.red black tree 내부적으로 잘못 구현된 부분들 고쳤다.
연산 후 is_extern 을 안풀어줬다거나 색상을 교환해야하는데 일방적으로 주고 끝났다던가 하는 오류
(delete case4 , case1)
예전에 RBT 만들때 참고한 영상은 아래 영상이다.
https://youtu.be/6drLl777k-E?si=AZ58jvcD3QbC3RjC
'포트폴리오 만들기' 카테고리의 다른 글
5.Engine.dll - Script.dll class 간의 상속 (1) | 2023.12.19 |
---|---|
4.MemoryPool,ObjectPool TestCode , Singleton 변경점 (0) | 2023.12.14 |
2.MySTL lib 만들기 / 빌드 이벤트 - bat 파일 사용. (0) | 2023.12.06 |
1.DLL 학습 및 만들기 (0) | 2023.12.05 |
0.계획 (0) | 2023.12.05 |
댓글