std::inplace_vector<T,N>::assign_range
来自cppreference.com
< cpp | container | inplace vector
template< container-compatible-range<T> R > void assign_range( R&& rg ); |
(C++23 起) | |
将容器中的元素替换成 rg 中每个元素的副本。
本节未完成 |
范围 rg 中每个迭代器均恰好被解引用一次。
若 rg 与容器重叠则行为未定义。
参数
rg | - | 引用类型可转换为容器元素类型的 input_range
|
类型要求 | ||
-std::assignable_from<T&, ranges::range_reference_t<R>> 必须得到实现。否则程序非良构。 | ||
-T 必须从 *ranges::begin(rg) 可就位构造 (EmplaceConstructible) 到容器中。否则行为未定义。
|
返回值
(无)
注解
功能特性测试宏 | 值 | 标准 | 功能特性 |
---|---|---|---|
__cpp_lib_containers_ranges |
202202L | (C++23) | 按范围构造和插入 |
示例
运行此代码
#include <algorithm> #include <cassert> #include <inplace_vector> #include <list> int main() { const auto source = std::list{2, 7, 1}; auto destination = std::inplace_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)); }
参阅
插入一个元素范围 (公开成员函数) | |
将值赋给容器 (公开成员函数) |