- https://en.cppreference.com/w/cpp/container/vector/insert 의 내용입니다. "Causes reallocation if the new size() is greater than the old capacity(). If the new size() is greater than capacity(), all iterators and references are invalidated." 즉, insert 후 size가 capacity 초과로 변하면 기존에 만든 모든 iterator가 무효화된다는 뜻인데, 그 시점을 프로그래머 입장에서 임의로 가정해서는 안 되니 새로운 iterator를 받아내는 것이 바람직합니다.
- a.insert(it, b.begin(), b.end())는 b의 시작부터 끝까지를 it의 위치에 끼워넣는다는 의미니까 전혀 다른 의미입니다.
evol3435 4년 전
질문 1 :
아래 코드에서 it의 위치를 a.begin()이라고 초기화 했으니까
it++가 it=a.begin()+1과 같은 의미가 아닌가요?
질문 2 :
a.insert(it, b.begin(), b.end())라는 말이 a.insert(it,10,20)이란 의미아닌가 갑자기 궁금해졌어요ㅠ
그러면 20을 10번 넣으라는 의미가 되니까 틀린 접근인줄은 알겠는데 궁금해요ㅠㅠ!