http://www.cppreference.com/wiki/stl/deque/insert을 참조로 특정 위치에서 값을 양키 (deque)에 삽입했습니다. 예를 들어stl :: deque의 삽입 (loc, val) - deque와 다른 위치의 끝에서의 일관되지 않은 동작?
, 양단 A가 인 경우 :
a, b, d, e, g
반복자 D 가리키는 내가 수와 :
A.insert(iter, c); // insert val c before loc iter
//deque is now a, b, c, d, e, g
및 ITER 여전히 D 포인트한다. 그러나, g에 ITER 점은, 마지막 요소 때
A.insert(iter, f);
//deque is now a, b, c, d, e, f, g
하지만 ITER 이제 F 가리키는!
나의 현재 해결 방법은 다음과 같습니다
iter = A.insert(loc, val); // point iterator to element that was inserted before loc
iter++; // point iter back to loc
내가 다시 테스트 또는 아무것도하지 않은, 일관성의) 단지 (삽입을 발견, 아래로 버그를 추적 너무 많은 시간을 보낸 것이 짜증나 행동, stl에서 모두 장소.
왜 다른 위치와 비교해도 결국 insert()가 다르게 동작합니까? 아니면 제가 잘못한 것입니까?
23.2.1.3 표준에서 궁금한 사람. – GManNickG
다른 작업에는 어떤 것이 있습니까? 삽입, 지우기, 팝, 밀어 넣기, 크기 조절과 같이 양면 페이지의 크기()를 변경하는 것은 무엇입니까? 루프의 어딘가에서 요소를 변경하는 것은 어떨까요? * iter = 'z'; – Kache
컨테이너마다 다릅니다. 'deque'의 경우, 시퀀스 중간에 삽입이나 삭제가 있으면 기존의 모든 반복자가 무효화됩니다. 끝에서 추가 또는 제거하지 않습니다. 또한 시퀀스 중간에서 많은 삽입 작업을 수행하는 경우 'deque'대신 'list'를 사용하는 것이 더 나을 것입니다. – coppro