std::forward_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) 按範圍構造和插入

示例

#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));
}

參閱

插入元素範圍到元素後
(公開成員函數)
添加元素的範圍到起始
(公開成員函數)
將值賦給容器
(公開成員函數)