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
}