public member function
<forward_list>

std::forward_list::push_front

void push_front (const value_type& val);void push_front (value_type&& val);
在開頭插入元素
forward_list 的開頭,在其當前第一個元素之前插入一個新元素。val 的內容被複制(或移動)到插入的元素中。

這會有效地將容器大小增加一。

存在一個類似的成員函式,emplace_front,它直接在原位構造插入的元素物件,無需進行任何複製或移動操作。

引數

val
要被複制(或移動)到新插入元素的值。
成員型別value_type是容器中元素的型別,在 forward_list 中定義為其第一個模板引數的別名(T).

返回值



如果新元素需要儲存空間,則使用以下方法分配:allocator_traits<allocator_type>::construct()分配,這在失敗時可能會丟擲異常(對於預設的 allocatorbad_alloc如果分配請求不成功,則丟擲)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// forward_list::push_front
#include <iostream>
#include <forward_list>
using namespace std;

int main ()
{
  forward_list<int> mylist = {77, 2, 16};
  mylist.push_front (19);
  mylist.push_front (34);

  std::cout << "mylist contains:";
  for (int& x: mylist) std::cout << ' ' << x;
  std::cout << '\n';

  return 0;
}

輸出
mylist contains: 34 19 77 2 16


複雜度

常量。

迭代器有效性

沒有變化。

資料競爭

容器被修改。
不訪問任何現有元素:併發訪問或修改它們是安全的。

異常安全

強保證:如果丟擲異常,容器沒有發生變化。
如果不支援使用 val 作為引數的 allocator_traits::construct,則會導致“未定義行為”。

另見