std::vector<T,Allocator>::assign_range
출처: ko.cppreference.net
template< /*container-compatible-range*/<T> R >
constexpr void assign_range( R&& rg );
|
(C++23부터) | |
컨테이너의 요소를 rg의 각 요소의 복사본으로 교체합니다.
모든 반복자(end() 반복자 포함)와 요소에 대한 모든 참조가 무효화됩니다.
범위 rg의 각 반복자는 정확히 한 번 역참조됩니다.
rg이(가) 컨테이너와 겹치는 경우 동작이 정의되지 않습니다.
매개변수
| rg | - |
컨테이너의 요소 타입으로 변환 가능한 참조 타입을 가진
input_range
|
| 타입 요구사항 | ||
|
-
|
||
-
T
가
*
ranges::
begin
(
rg
)
에서
vector
로
EmplaceConstructible
가 아니면 동작은 정의되지 않습니다.
|
||
-
T
가
vector
로
MoveInsertable
가 아니면 동작은 정의되지 않습니다:
| ||
|
(C++26 이전) | |
|
(C++26 이후) | |
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | 레인지 인식 생성 및 삽입 |
예제
이 코드 실행
#include <algorithm> #include <cassert> #include <vector> #include <list> int main() { const auto source = std::list{2, 7, 1}; auto destination = std::vector{3, 1, 4}; #ifdef __cpp_lib_containers_ranges destination.assign_range(source); #else destination.assign(source.cbegin(), source.cend()); #endif assert(std::ranges::equal(source, destination)); }
참고 항목
|
(C++23)
|
요소 범위를 삽입합니다
(public member function) |
|
(C++23)
|
끝에 요소 범위를 추가합니다
(public member function) |
|
컨테이너에 값을 할당합니다
(public member function) |
|
|
컨테이너에 값을 할당합니다
(public member function) |