원래 내부 데이터 구조가 std::list
인 컨테이너 클래스를 작성했습니다. 그런 다음 자신의 이중 연결 목록을 만들어야했습니다. 이제 연결된 목록에 대한 내 자신의 이중 반복 목록과 자체 반복자를 구현했지만 std::list
, 특히 begin()
및 end()
과 같이 작동하도록하는 데 문제가 있습니다.이중 연결 목록의 begin() 및 end() 구현
내가 이해 한대로 begin()
은 첫 번째 노드를 가리켜 야하고 end()
은 마지막 요소보다 한 요소를 가리켜 야합니다. 내가 end()
을 호출 할 때 유효한 마지막 요소로 감소시킬 수 있는지 확인해야합니다. 또한
while (beg != end) { do something; beg++; }
은 본질적으로 내 연결리스트는 단지 데이터 요소, 이전 노드에 대한 포인터와 다음 노드에 대한 포인터를 포함하는 노드를 사용하여 ... 내가 좋아하는 일반 순회를 할 수 있는지 확인해야합니다 .
내가 처음에 end()
을 구현하려고 시도했을 때 나는 마지막 노드의 다음 포인터가 nullptr
이었습니다. 그것은 독자적으로 작동하지만 stl과 같은 방식으로 작동하지 않습니다.
표준 라이브러리와 동일한 방법으로 begin()
및 end()
을 구현하는 방법에 대한 조언이 있으십니까?
http://www.cplusplus.com/reference/list/list/, http://www.cplusplus.com/reference/forward_list/forward_list/ – IdeaHat
사이드 참고 : std :: list에 대한 사용자 정의 할당자를 고려 했습니까? –