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번 넣으라는 의미가 되니까 틀린 접근인줄은 알겠는데 궁금해요ㅠㅠ!

djm03178   4년 전

  1.  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를 받아내는 것이 바람직합니다.
  2. a.insert(it, b.begin(), b.end())는 b의 시작부터 끝까지를 it의 위치에 끼워넣는다는 의미니까 전혀 다른 의미입니다.

댓글을 작성하려면 로그인해야 합니다.