편의상 BT라 줄이겠음
BT의 노드는 복수의 키를 가지고 있잖아
그러면 이터레이터를 구현할 때 어떻게 해야하지?
예를 들어 BT의 노드를 이렇게 구현한다쳐
이터레이터는 위에 구현을 토대로 작동할 거잖아
유저가 Search를 사용해서 BT에 키가 존재하는지 찾는다 하면
BT 구현의 함수 Search가 이터레이터를 반환하는데 만약 그걸 dereference하면 뭘 반환하지?
노드 하나에 키가 여러 개 있는데 이걸 저장하는 배열을 반환해야하나?
표준의 map을 보면 (libstdc++ 기준) red black tree의 이터레이터가 노드를 쓰되
dereference 할 때는 pair<Key, Value>를 반환하던데
근데 RB tree는 한 노드에 한 키가 할당돼있으니 가능한 거고 애초에 이렇게 쓰는 게 잘못된 건가?
아 그냥 이터레이터 생성할 때 키 인덱스도 넣으면 끝나는 일이네
중국에서 BT라 하면 변태라는 의미더라 - dc App
헨따이...
BT : Trust me!
https://github.com/9rum/file-processing/blob/master/btree.c
도움이
될 지는 모르겠지만
내가 C로 짠 건데 단순하게 만들었으니 한 번 보면 힌트가 될지도 ㅇㅅㅇ