Namespaces
Variants

std::list<T,Allocator>:: insert_range

From cppreference.net

template < container-compatible-range < T > R >
iterator insert_range ( const_iterator pos, R && rg ) ;
(C++23부터)
(C++26부터 constexpr)

rg 내 요소들의 복사본을 역순 없이 pos 앞에 삽입합니다.

반복자나 참조가 무효화되지 않습니다.

범위 내의 각 반복자는 rg 에 대해 정확히 한 번 역참조됩니다.

만약 rg * this 와 겹칠 경우, 동작은 정의되지 않습니다.

목차

매개변수

pos - 콘텐츠가 삽입될 위치 앞의 반복자 ( pos end() 반복자일 수 있음)
rg - 컨테이너 호환 범위 , 즉 요소들이 T 로 변환 가능한 input_range
타입 요구사항
-
T * ranges:: begin ( rg ) 에서 list EmplaceConstructible 가 아닌 경우, 동작은 정의되지 않음

반환값

* this 에 삽입된 첫 번째 요소를 가리키는 반복자, 또는 rg 가 비어 있을 경우 pos 를 반환합니다.


참고 사항

기능 테스트 매크로 표준 기능
__cpp_lib_containers_ranges 202202L (C++23) Ranges-aware 생성 및 삽입

예제

#include <algorithm>
#include <cassert>
#include <iterator>
#include <list>
#include <vector>
int main()
{
    auto container = std::list{1, 2, 3, 4};
    auto pos = std::next(container.begin(), 2);
    assert(*pos == 3);
    const auto rg = std::vector{-1, -2, -3};
#ifdef __cpp_lib_containers_ranges
    container.insert_range(pos, rg);
#else
    container.insert(pos, rg.cbegin(), rg.cend());
#endif
    assert(std::ranges::equal(container, std::list{1, 2, -1, -2, -3, 3, 4}));
}

참고 항목

요소들을 삽입합니다
(public member function)
요소들의 범위를 시작 부분에 추가합니다
(public member function)
요소들의 범위를 끝 부분에 추가합니다
(public member function)