중첩(Nested)클래스로 Iterator 직접 구현하기
C++ STL의 템플릿 클래스들이 제공하는 이터레이터를 직접 구현해본 예제 입니다. 예를 들면, std::vector 의 이터레이터를 다음과 같이 사용합니다. std::vector<int> v; v.push_back(5); v.push_back(3); v.push_back(7); // 이터레이터 선언 std::vector<int>::iterator itr = v.begin(); 직접 템플릿 클래스를 만들고 이를 순회하는 iterator 도 직접 만들어 보는 것이죠. 이진 탐색 트리( B inary S earch T ree, 이하 BST)의 Iterator를 직접 구현 해보고자 하는 학원생이 있어 같이 공부하며 만들어 보았습니다. 이 게시물은 BST의 기본적인 구현을 설명하지 않습니다. 인터넷에 많은 자료가 있으므로 참조하기 바라며, Custom Iterator 의 내용 위주로 설명하겠습니다. 구글 검색으로 아래 사이트의 도움을 많이 받았습니다. 미국 "The Ohio State University, Steven J Zeil" 교수님이 구현한 예제이며, 해당 주제에 대해 잘 정리되어 있습니다. 링크 : https://www.cs.odu.edu/~zeil/cs361/latest/Public/treetraversal/index.html 아래와 같이 사용합니다. Main.cpp #include <iostream> #include <string> #include "bst.h" int main() { // int type bst ocs::bst<int> b1; b1.insert(5); b1.insert(3); b1.insert(7); b1.insert(2); b1.insert(10); std::cou