더북(TheBook)

2. 두 번째와 세 번째 인수로 지정한 원소들의 순차열을 삽입한다.

std::string more[] {"five", "six", "seven"};     // 삽입할 원소들의 배열
iter = words.insert(--std::end(words), std::begin(more), std::end(more));

두 번째 문장에서는 end()가 반환한 반복자를 감소시킨 값을 삽입 위치로 지정했다. 이 위치는 마지막 원소에 해당하므로 새 원소는 마지막 원소 앞에 삽입된다. 이 문장을 실행하면 words 벡터는 다음과 같은 string 객체를 갖는다.

"one" "two" "three" "five" "six" "seven" "eight"

이어서 삽입된 원소들 중에 첫 번째 원소 "five"를 가리키는 반복자를 반환한다.

3. vector의 끝에 원소 하나를 삽입한다.

iter = words.insert(std::end(words), "ten");

삽입 위치는 마지막 원소에서 하나 더 뒤이므로 새 원소는 마지막 원소 뒤에 추가된다. 이 문장을 실행하면 words 벡터는 다음과 같은 string 객체를 갖는다.

"one" "two" "three" "five" "six" "seven" "eight" "ten"

이어서 삽입된 원소 "ten"을 가리키는 반복자를 반환한다. 이 문장은 1번 항목에서 설명한 것과 같은 오버로드를 사용한다. 이 예제는 첫 번째 인수가 원소가 아니라 마지막 원소에서 하나 더 뒤를 가리켜도 동작한다는 것을 보여주기 위한 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.