list_insert_range
list_insert_range (std::list::insert_range — 범위 삽입)
std::list의 지정한 위치에 범위(range)의 원소들을 원래 순서 그대로 삽입하는 멤버 함수예요.
출처: cppreference
본문
시그니처는 다음과 같아요.
template< container-compatible-range<T> R >
iterator insert_range( const_iterator pos, R&& rg ); // (since C++23)
pos 앞에 범위 rg의 원소 복사본들을 원래 순서 그대로(non-reversing order) 삽입해요. 이터레이터나 참조는 무효화되지 않아요. rg의 각 이터레이터는 정확히 한 번 역참조돼요. rg가 컨테이너와 겹치면 동작이 정의되지 않아요.
매개변수
pos: 내용이 삽입될 위치 바로 앞을 가리키는 이터레이터 (pos는end()이터레이터일 수도 있어요)rg: 원소들이T로 변환 가능한 container compatible range
반환값
삽입된 첫 번째 원소를 가리키는 이터레이터.
복잡도
ranges::distance(rg)에 선형(linear)이에요.
예제
#include <list>
#include <iostream>
int main()
{
std::list<int> l{1, 4};
auto it = l.begin();
++it; // 4를 가리킴
l.insert_range(it, std::array{2, 3});
for (int x : l) std::cout << x << ' '; // 1 2 3 4
}