deque::emplace_front

deque::emplace_front (앞에 제자리 생성 추가)

컨테이너의 맨 앞에 새 요소를 제자리 생성해 추가하는 멤버 함수예요. <deque> 헤더, C++11부터.

출처: cppreference

본문

emplace_front는 컨테이너의 시작 부분에 새 요소를 삽입해요.

template< class... Args >
void emplace_front( Args&&... args );          // (until C++17)

template< class... Args >
reference emplace_front( Args&&... args );     // (since C++17)

C++17부터는 새로 추가된 요소에 대한 참조를 반환해요. 요소는 std::allocator_traits::construct를 통해, 전형적으로 placement new로 컨테이너가 제공하는 위치에 제자리 생성돼요. 인자 args...std::forward<Args>(args)...로 생성자에 전달돼요.

  • 모든 반복자(끝 반복자 포함)가 무효화되지만, 참조는 무효화되지 않아요.
  • 복잡도: 상수 시간.
std::deque<std::pair<int,int>> d;
d.emplace_front(9, 9);   // 앞에 {9,9} 제자리 생성해 삽입

deque는 앞쪽 삽입이 상수 시간이라 vector에서 불가능한 앞쪽 제자리 삽입이 가능해요. push_front의 제자리 버전이라고 보면 돼요.

더 알아보기 (Learn more)

cppreference