std::forward_list<T,Allocator>::assign_range
出自cppreference.com
| |
(C++23 起) | |
將容器中的元素替換成 rg 中每個元素的副本。
指代元素的所有迭代器(包括 end() 迭代器)和所有引用均會失效。
範圍 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 <forward_list>
#include <list>
int main()
{
const auto source = std::list{2, 7, 1};
auto destination = std::forward_list{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) |
插入元素範圍到元素後 (公開成員函數) |
(C++23) |
添加元素的範圍到起始 (公開成員函數) |
| 將值賦給容器 (公開成員函數) |