stack_emplace

stack_emplace (std::stack::emplace — top에 제자리 삽입)

std::stack의 top에 새 원소를 제자리(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)

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

반환값

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

복잡도

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

예제

#include <iostream>
#include <stack>
#include <string>
int main()
{
    std::stack<std::string> s;
    s.emplace("a");
    s.emplace("b");
    std::cout << s.top() << '\n';   // b
}

더 알아보기 (Learn more)

cppreference