名稱空間
變體
操作

std::list<T,Allocator>::append_range

來自 cppreference.com
< cpp‎ | 容器‎ | list
 
 
 
 
template< container-compatible-range<T> R >
void append_range( R&& rg );
(C++23 起)

end() 之前,以非逆序插入來自範圍 rg 的元素的副本。

迭代器或引用均未失效。

rg 中的每個迭代器都只解引用一次。

目錄

[編輯] 引數

rg - 一個 容器兼容範圍,即一個 input_range,其元素可轉換為 T
型別要求
-
T 必須能夠從 *ranges::begin(rg) EmplaceConstructiblelist 中。否則,行為未定義。

[編輯] 返回值

(無)

[編輯] 複雜度

rg 的大小成線性關係。對 T 的建構函式的呼叫次數正好等於 std::ranges::size(rg))

[編輯] 異常

如果由於任何原因丟擲異常,此函式無效果(強異常安全保證)。

注意

特性測試 標準 特性
__cpp_lib_containers_ranges 202202L (C++23) 範圍感知(Ranges-aware)構造和插入

[編輯] 示例

#include <cassert>
#include <list>
#include <vector>
 
int main()
{
    auto head = std::list{1, 2, 3, 4};
    const auto tail = std::vector{-5, -6, -7};
#ifdef __cpp_lib_containers_ranges
    head.append_range(tail);
#else
    head.insert(head.end(), tail.cbegin(), tail.cend());
#endif
    assert((head == std::list{1, 2, 3, 4, -5, -6, -7}));
}

[編輯] 另請參閱

新增一個元素範圍到起始
(公開成員函式)
插入元素範圍
(公開成員函式)
新增元素到結尾
(公開成員函式)
就地構造元素於結尾
(公開成員函式)