queue_emplace

queue_emplace (std::queue::emplace — 끝에 제자리 삽입)

std::queue의 끝에 새 원소를 제자리(in-place) 구성해 삽입하는 멤버 함수예요. c.emplace_back(std::forward<Args>(args)...)와 동등해요.

출처: cppreference

본문

시그니처는 다음과 같아요.

template< class... Args >
void emplace( Args&&... args );          // (since C++11) (until C++17)
template< class... Args >
decltype(auto) emplace( Args&&... args );   // (since C++17)

새 원소를 큐의 끝에 제자리 구성해 push해요. c.emplace_back(std::forward<Args>(args)...)와 동등해요.

반환값

C++17부터는 decltype(auto)로, 내부 컨테이너의 emplace_back(C++17 이후)이 반환하는 참조를 그대로 돌려줘요.

복잡도

Container::emplace_back의 복잡도와 같아요.

예제

#include <iostream>
#include <queue>
#include <string>
int main()
{
    std::queue<std::string> q;
    q.emplace("a");
    q.emplace("b");
    std::cout << q.front() << ' ' << q.back() << '\n';   // a b
}

더 알아보기 (Learn more)

cppreference