C++中vector的insert函数可在指定位置插入元素,支持单个元素、多个相同元素及区间插入,返回指向新元素的迭代器;在中间插入时时间复杂度为O(n),建议频繁插入时使用list或deque,并通过reserve预留空间以提升性能。
C++ 中的 vector 是一种动态数组,能够自动管理内存并支持在运行时插入和删除元素。在实际开发中,我们经常需要在 vector 的指定位置插入新元素,这时就要用到 insert() 函数。本文将详细讲解 vector 的 insert 用法,包括语法、参数、返回值以及常见使用场景。
个相同的元素 value,返回第一个插入元素的迭代器。例如:
#include说明:vec.begin() + 2 指向第3个元素(即4),insert 会在它前面插入3。#include using namespace std; int main() { vector vec = {1, 2, 4, 5}; // 在索引为2的位置插入3 vec.insert(vec.begin() + 2, 3); for (int i : vec) { cout << i << " "; } // 输出: 1 2 3 4 5 }
示例:
vector这个方法比循环调用单元素插入更高效,推荐用于批量插入相同值。vec = {1, 2}; // 在开头插入3个0 vec.insert(vec.begin(), 3, 0); // 结果: 0 0 0 1 2
示例:
vector也可以插入普通数组的一部分:vec1 = {1, 2, 6, 7}; vector vec2 = {3, 4, 5}; // 将 vec2 全部插入到 vec1 中 2 和 6 之间 vec1.insert(vec1.begin() + 2, vec2.begin(), vec2.end()); // 结果: 1 2 3 4 5 6 7
int arr[] = {10, 20, 30};
vec.insert(vec.end(), arr, arr + 2); // 插入前两个元素