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

来自cppreference.com
 
 
 
 
iterator insert( const_iterator pos, const T& value );
(1)
iterator insert( const_iterator pos, T&& value );
(2) (C++11 起)
iterator insert( const_iterator pos,
                 size_type count, const T& value );
(3)
template< class InputIt >
iterator insert( const_iterator pos, InputIt first, InputIt last );
(4)
iterator insert( const_iterator pos, std::initializer_list<T> ilist );
(5) (C++11 起)

插入元素到容器中的指定位置。

1)pos 前插入 value 的副本。
2)pos 前插入 value,可能使用移动语义。
3)pos 前插入 valuecount 个副本。
4)pos 前插入来自范围 [firstlast) 的元素。

如果 InputIt 是整数类型,那么此重载与重载 (3) 的效果相同。

(C++11 前)

此重载只有在InputIt 足以为输入迭代器时才会参与重载决议,以避免与重载 (3) 有歧义。

(C++11 起)
如果 firstlast 是指向 *this 中的迭代器,那么行为未定义。
5)pos 前插入来自初始化器列表 ilist 的元素。

所有迭代器(包括 end() 迭代器)都会失效。引用也会失效,除非 pos == begin()pos == end(),此时它们不会失效。

参数

pos - 将内容插入到它前面的迭代器。pos 可以是 end() 迭代器
value - 要插入的元素值
count - 要插入的元素数量
first, last - 要插入的(不能是指向调用 insert 所用的容器中的迭代器)元素范围的迭代器对
ilist - 要插入的值来源的 std::initializer_list
类型要求
-
为使用重载 (1), T 必须满足可复制赋值 (CopyAssignable) 可复制插入 (CopyInsertable)
-
为使用重载 (2), T 必须满足可移动赋值 (MoveAssignable) 可移动插入 (MoveInsertable)
-
为使用重载 (3), T 必须满足可复制赋值 (CopyAssignable) 可复制插入 (CopyInsertable)
-
为使用重载 (4,5), T 必须满足可就位构造 (EmplaceConstructible)
-
为使用重载 (4,5), T 必须满足可交换 (Swappable) 可移动赋值 (MoveAssignable) 可移动构造 (MoveConstructible) 可移动插入 (MoveInsertable) (C++17 起)

返回值

1,2) 指向被插入 value 的迭代器。
3) 指向首个被插入元素的迭代器,或者在 count == 0 时返回