4

至于title,可以vec.end()作为position参数传递吗?即,是的行为

std::vector<int> vec;
vec.insert(vec.end(), 0);

定义明确?

4

2 回答 2

7

是的,它定义明确。假设向量为空,则begin()等于end()。效果是它在迭代器之前插入元素的副本。

§ 表 100 — 序列容器要求(除了容器)

|------------------------------------------------------------------------------|
|a.insert(p,t)  | iterator    Requires:T shall be CopyInsertable into X. For   |
|               |             vector and deque, T shall also be CopyAssignable.|
|               |             Effects: Inserts a copy of t before p.           |
-------------------------------------------------------------------------------|

还要看:std::vector::insert

于 2013-09-13T12:54:43.393 回答
6

是的,传递给插入函数的迭代器给出了插入新元素的位置。因此,插入 atend()会使元素成为容器中的最后一个元素。

于 2013-09-13T12:55:09.203 回答