std::list<T,Allocator>::assign_range
來自 cppreference.com
template< container-compatible-range<T> R > void assign_range( R&& rg ); |
(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) | 範圍感知(Ranges-aware)構造和插入 |
[編輯] 示例
執行此程式碼
#include <algorithm> #include <cassert> #include <list> #include <vector> int main() { const auto source = std::vector{2, 7, 1}; auto destination = std::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) |
新增一個元素範圍到起始 (公開成員函式) |
(C++23) |
新增一個元素範圍到結尾 (公開成員函式) |
將值賦給容器 (公開成員函式) | |
將值賦給容器 (公開成員函式) |