3
이 질문은 절름발이 일지 모르지만 명확한 대답을 찾지 못했습니다. 내가 map
의 find()
메소드에 의해 반환 된 이터레이터가 다른 요소를 같은 map
에 추가 (또는 제거)해도이 데이터를 가리키고 있다고 가정 할 수 있습니까? 그것은 나를 위해 불분명 경우 map
또는 특정 데이터의 위치에 map
의 반복자 포인트 ...C++ 컨테이너의 반복자
이 질문은 절름발이 일지 모르지만 명확한 대답을 찾지 못했습니다. 내가 map
의 find()
메소드에 의해 반환 된 이터레이터가 다른 요소를 같은 map
에 추가 (또는 제거)해도이 데이터를 가리키고 있다고 가정 할 수 있습니까? 그것은 나를 위해 불분명 경우 map
또는 특정 데이터의 위치에 map
의 반복자 포인트 ...C++ 컨테이너의 반복자
당신은 insert
또는 erase
작업 후 동일한 반복자를 계속 사용할 수 있습니다. 삽입 회원 컨테이너에 반복자와 참조의 유효성에 영향을 미치지 아니한다
및 삭제 회원 전용 반복자를 무효화한다 표준은 (C++ 03 표준, 제 23.1.2 조 8) 말한다 지워진 요소에 대한 참조 등이 있습니다.
이 모든 연관 컨테이너 (map
, set
, multimap
, multiset
)도 마찬가지이다.
+1 (신뢰할 수있는 참조 용) (http://www.sgi.com/tech/stl/Map.html) –
또한 unordered_map과 같은 TR1 컨테이너에도 사용됩니까? C++ 0x는 iterator 정의를 변경하지 않는다고 가정합니다. – Goofy
@Goofy : 관심있는 특정 컨테이너에 대한 요구 사항을 확인해야합니다. 예를 들어 위에서 설명한 보증은 std :: list에는 해당되지만 std :: deque 또는 std :: vector에는 해당되지 않습니다. –