c++ - std::vector::insert,以 end 作为第一个参数调用它可以吗?

标签 c++ stl

至于title,把vec.end()作为position参数传过去可以吗?即,是

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

定义明确?

最佳答案

是的,它定义明确。假设如果 vector 为空,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

关于c++ - std::vector::insert,以 end 作为第一个参数调用它可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18786801/

相关文章:

C++ STL 设置自定义比较器

c++ - 为什么编译器会出现此模板的作用域问题?

c++ - std::valarray 和 std::array 有什么区别

c++ - 如何更新指针集 C++?

c++ - 如何在 C++1z 中使用实验性并行 STL?

C++ 结构对齐和 STL vector

c++ - Windows 平台上的音频/视频流

c++ - 为什么这段代码不起作用?为什么我需要返回类型作为引用?

c++ - 可以通过跨二进制边界传递的对象上的接口(interface)调用虚函数吗?

c++ - 以类名作为键的映射