std::deque<T,Allocator>::assign_range

来自cppreference.com
< cpp‎ | container‎ | deque
 
 
 
 
template<container-compatible-range<T> R >
void assign_range( R&& rg );
(C++23 起)
(C++26 起为 constexpr)

将容器中的元素替换成 rg 中每个元素的副本。

指代元素的所有迭代器(包括 end() 迭代器)和所有引用均会失效。

范围 rg 中每个迭代器均恰好被解引用一次。

如果 rg*this 重叠,那么行为未定义。

目录

[编辑]参数

rg - 引用类型可转换到容器元素类型的 input_range
类型要求
-
如果 std::assignable_from<T&, ranges::range_reference_t<R>> 未得到实现,那么程序非良构。
-
如果 T*ranges::begin(rg)可就位构造(EmplaceConstructible) deque 中,那么行为未定义。

注解

功能特性测试标准功能特性
__cpp_lib_containers_ranges202202L(C++23)按范围构造和插入

[编辑]示例

#include <algorithm>#include <cassert>#include <deque>#include <list>   int main(){constauto source =std::list{2, 7, 1};auto destination =std::deque{3, 1, 4};#ifdef __cpp_lib_containers_ranges destination.assign_range(source);#else destination.assign(source.cbegin(), source.cend());#endifassert(std::ranges::equal(source, destination));}

[编辑]参阅

插入元素范围
(公开成员函数)
添加元素的范围到起始
(公开成员函数)
添加元素的范围到末尾
(公开成员函数)
将值赋给容器
(公开成员函数)
将值赋给容器
(公开成员函数)
close