더북(TheBook)

이 코드를 실행하면 my_words의 앞에 your_words의 마지막 원소를 잘라 붙인다. 따라서 my_wordsstring 객체 "nine," "three," "six," "eight"을 갖고, your_wordsstring 원소 두 개, "seven""four"만 남게 된다.

forward_list<T> 컨테이너의 원소들을 다른 컨테이너에 잘라 붙이는 버전의 splice_after()도 있다.

my_words.splice_after(my_words.before_begin(), your_words,
                                 ++std::begin(your_words), std::end(your_words));

마지막 두 인수는 두 번째 인수로 지정한 forward_list<T> 컨테이너에서 잘라 붙일 원소들의 범위를 지정하는 반복자다. 여기서는 첫 번째 원소를 제외한 나머지 원소 전체를 첫 번째 인수가 지정한 컨테이너의 위치로 이동시킨다. 따라서 예제에 사용한 컨테이너가 초기 상태일 때 이 코드를 실행했다고 가정한다면 my_words"four," "nine," "three," "six," "eight"이 되고 your_words"seven"만 남는다.

splice_after()의 또 다른 버전은 forward_list<T> 컨테이너의 모든 원소를 다른 컨테이너에 잘라 붙이는 것이다.

my_words.splice_after(my_words.before_begin(), your_words);

이 문장은 your_words의 모든 원소를 첫 번째 인수가 지정한 my_words의 위치로 이동시킨다.

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