더북(TheBook)

이 프로그램은 길이가 다른 문자열들을 읽어서 names 컨테이너에 저장한다. copy() 알고리즘은 istream_iterator<string> 반복자로 얻은 순차열을 front_inserter() 함수가 반환하는 names 컨테이너의 front_insert_iterator로 복제해서 입력을 처리한다. copy()의 첫 번째 인수는 시작 반복자이고, 두 번째 인수는 끝 반복자를 지정한다. 키보드에서 Ctrl+Z를 입력하면 입력 반복자는 끝 반복자와 일치하게 된다. 파일 스트림에서 데이터를 읽어오는 중이라면 끝 반복자는 EOF(파일의 끝)에 도달한 결과가 되는 것이다. deque 컨테이너에는 순차열의 시작에 원소를 추가할 수 있는 push_front() 멤버도 있으므로 front_insert_iterator를 사용할 수 있다. front_insert_iterator는 컨테이너의 push_front()를 호출해서 원소를 하나씩 추가하는 방식으로 동작하므로 push_front() 멤버가 있는 컨테이너라면 무엇이든 front_insert_iterator와 쓸 수 있다.

출력 결과도 copy() 알고리즘을 호출해서 만들 수 있다. copy() 알고리즘은 처음 두 반복자로 복제할 원소들의 범위를 지정하고, 세 번째 인수로 대상을 지정한다. 여기서는 처음 두 인수에 deque 컨테이너의 시작 반복자와 끝 반복자를 지정했으므로 모든 원소가 복제된다. 세 번째 인수 대상에는 string 객체를 받아서 표준 출력 스트림에 쓸 수 있는 ostream_iterator를 지정했다.

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