名稱空間
變體
操作

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

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

end() 之前插入來自範圍 rg 中元素的副本,按非反向順序。

所有迭代器(包括 end() 迭代器)都將失效。無引用失效。

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

目錄

[編輯] 引數

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

[編輯] 返回值

(無)

[編輯] 複雜度

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

[編輯] 異常

如果丟擲的異常不是由 T 的複製建構函式、移動建構函式、賦值運算子或移動賦值運算子引起的,則沒有影響。如果插入單個元素時在任一端丟擲異常,則沒有影響。否則,如果由非 可複製插入T 的移動建構函式丟擲異常,則效果未指定。

注意

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

[編輯] 示例

#include <cassert>
#include <deque>
#include <list>
 
int main()
{
    auto head = std::deque{1, 2, 3, 4};
    const auto tail = std::list{-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::deque{1, 2, 3, 4, -5, -6, -7}));
}

[編輯] 另請參閱

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