C++.insert函数
时间: 2025-06-28 20:08:42 浏览: 11
### C++ 中 `insert` 函数的使用方法
#### 向量中的 `insert`
在 C++ 的标准模板库(STL)中,`std::vector` 提供了一个名为 `insert` 的成员函数用于在指定位置插入元素。下面是一个具体的例子:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<string> v{"C", "Tutorials"};
v.insert(v.begin() + 1, 2, "C");
for (const auto& item : v)
cout << item << " ";
return 0;
}
```
这段代码展示了如何在一个字符串类型的向量中,在索引为 1 的地方插入两个 `"C"` 字符串[^1]。
#### 映射中的 `insert`
对于关联容器如 `std::map`,同样存在 `insert` 方法来添加键值对到映射表里:
```cpp
#include <iostream>
#include <map>
using namespace std;
int main() {
map<char, int> m{{'a', 1}, {'b', 2}, {'c', 3}};
m.insert(make_pair('d', 4));
m.emplace('e', 5);
cout << "Map contains following elements" << endl;
for (const auto& pair : m)
cout << pair.first << " = " << pair.second << endl;
return 0;
}
```
这里不仅演示了通过 `make_pair` 创建新条目并将其加入集合的方式,还介绍了另一种更高效的插入方式——`emplace`[^2]。
#### 字符串中的 `insert`
当处理基本数据结构之外的对象时,比如 `std::string` 类型的数据,则可以利用其自身的 `insert` 成员函数来进行操作:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "Hello";
auto pos = s.begin() + 2;
s.insert(pos, 3, 'x');
cout << s << endl; // 输出 Hexxxllo
return 0;
}
```
此片段说明了怎样在给定偏移处插入多个相同字符[^3]。
#### 列表中的 `insert`
最后来看一看双向链表 `std::list` 是怎么实现这个功能的:
```cpp
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> lst{1, 2, 3};
auto iter = lst.begin();
advance(iter, 1);
lst.insert(iter, 2, 99); // 在第二个位置之前插入两次 99
for (const auto& elem : lst)
cout << elem << " ";
return 0;
}
```
上述实例表明可以在列表任意节点前批量追加数值[^4]。
阅读全文
相关推荐


















