더북(TheBook)

이 함수에서 인수들은 값으로 전달되므로 우선순위 큐의 복제본을 처리하는 것이다. ostream 객체에 출력을 위해 구현된 operator<<()를 갖는 타입과 동작하는 템플릿이다. 두 번째 인수를 생략하면 기본값으로 한 줄에 5개씩 값을 출력한다. queue 컨테이너 어댑터 객체와 동작하는 함수 템플릿도 이 템플릿과 비슷하게 정의할 수 있다.

priority_queueemplace() 함수 멤버를 사용할 수도 있다.

words.emplace("nine");

인수에 사용된 string 리터럴은 string 클래스 생성자 호출에 인수로 사용되어 컨테이너 내부에서 객체를 바로 생성하는 데 쓰인다. 다음 문장보다 emplace()가 훨씬 더 효율이 좋다.

words.push("nine");

이 코드를 사용하면 컴파일러는 push()에 쓸 인수를 생성하기 위해 string 리터럴에서 string 생성자 호출을 삽입하고, 임시로 생성한 string 객체를 push() 호출에 인수로 사용한다. 이어서 push() 함수는 string 클래스의 복제 생성자를 호출해서 컨테이너가 추가할 객체를 생성한다.

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