list_insert

list_insert (std::list::insert — 원소 삽입)

std::list의 지정한 위치에 원소를 삽입하는 멤버 함수예요. 값, 개수+값, 이터레이터 범위, 초기화 목록 방식으로 삽입할 수 있어요.

출처: cppreference

본문

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

iterator insert( const_iterator pos, const T& value );       // (1)
iterator insert( const_iterator pos, T&& value );            // (2) (since C++11)
iterator insert( const_iterator pos, size_type count, const T& value );  // (3)
template< class InputIt >
iterator insert( const_iterator pos, InputIt first, InputIt last );     // (4)
iterator insert( const_iterator pos, std::initializer_list<T> ilist );  // (5) (since C++11)

컨테이너에서 지정한 위치에 원소들을 삽입해요.

(1) pos 앞에 value를 복사 삽입해요.

(2) pos 앞에 value를 이동 삽입해요.

(3) pos 앞에 value의 복사본 count개를 삽입해요.

(4) pos 앞에 범위 [first, last)의 원소들을 삽입해요.

(5) pos 앞에 초기화 목록 ilist의 원소들을 삽입해요.

매개변수

  • pos: 삽입할 위치 바로 앞을 가리키는 이터레이터
  • value: 삽입할 값
  • count: 삽입할 원소 개수
  • first, last: 삽입할 원소 범위를 정의하는 이터레이터 쌍
  • ilist: 삽입할 원소들의 초기화 목록

반환값

삽입된 첫 번째 원소를 가리키는 이터레이터.

복잡도

(1,2,3,5) 상수. (4) first에서 last까지의 거리에 선형.

예제

#include <list>
#include <iostream>
int main()
{
    std::list<int> l{1, 3};
    auto it = l.begin();
    ++it;                       // 3을 가리킴
    l.insert(it, 2);            // {1, 2, 3}
    for (int x : l) std::cout << x << ' ';
}

더 알아보기 (Learn more)

cppreference