public member function
<list>

std::list::push_back

void push_back (const value_type& val);
void push_back (const value_type& val);void push_back (value_type&& val);
在末尾添加元素
在容器的末尾添加一个新元素,作为其当前最后一个元素的后继。val 的内容被复制(或移动)到新元素。

这会使容器的 size 有效地增加一。

参数

val
要复制(或移动)到新元素的值。
成员类型value_type是容器中元素的类型,在 list 中被定义为其第一个模板参数(T).

返回值



)的别名。容器的 allocator 用于分配新元素所需的存储空间,这可能会在失败时抛出异常(对于默认的 allocator,会抛出bad_alloc如果分配请求不成功,则抛出)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// list::push_back
#include <iostream>
#include <list>

int main ()
{
  std::list<int> mylist;
  int myint;

  std::cout << "Please enter some integers (enter 0 to end):\n";

  do {
    std::cin >> myint;
    mylist.push_back (myint);
  } while (myint);

  std::cout << "mylist stores " << mylist.size() << " numbers.\n";

  return 0;
}
示例代码中使用push_back每次读取一个新整数时向容器添加一个新元素。

复杂度

常量。

迭代器有效性

没有变化。

数据竞争

容器被修改。
不访问任何现有包含的元素:并发访问或修改它们是安全的。

异常安全

强保证:如果抛出异常,容器没有发生变化。
如果不支持使用 val 作为参数的 allocator_traits::construct,则会导致“未定义行为”。

另见