iterator pattern 정의 : 객체 지향 프로그래밍에서 반복자를 사용하여 컨테이너를 가로지르며 컨테이너의 요소들에 접근하는 디자인 패턴이다. 반복자 패턴은 컨테이너로부터 알고리즘을 분리시키며, 일부의 경우 알고리즘들은 필수적으로 컨테이너에 특화되어 있기 때문에 분리가 불가능하다. -> 서로 다른 자료구조들을 같은 방법으로 순회하고 싶다. #include int main() { std::List s = { 1,2,3,4,5 }; // 모든 요소가 떨어진 메모리 std::vector v = { 1,2,3,4,5 }; // 모든 요소가 연속된 메모리 } list는 보통 double linked list를 사용하여 구현되어있다 한다. 즉 요소 요소가 떨어져 있다. [ ←o→ ←o→ ←o→ ←o→ ] v..