c++ string 插入操作
时间: 2025-05-17 20:25:31 浏览: 13
### 关于 `std::string` 的插入操作
在 C++ 中,`std::string` 提供了一个名为 `insert` 的成员函数,用于向字符串中的指定位置插入字符或子字符串。以下是关于该函数的详细介绍:
#### 函数原型
`std::string` 的 `insert` 方法有多种重载形式,常见的几种如下所示[^4]:
1. **通过索引插入单个字符**
```cpp
string& insert(size_t pos, char c);
```
2. **通过索引插入重复的字符**
```cpp
string& insert(size_t pos, size_t n, char c);
```
3. **通过索引插入另一个字符串的内容**
```cpp
string& insert(size_t pos, const string& str);
```
4. **通过迭代器范围插入内容**
```cpp
iterator insert(const_iterator position, InputIterator first, InputIterator last);
```
5. **通过初始化列表插入内容**
```cpp
void insert(const_iterator position, initializer_list<char> ilist);
```
#### 参数说明
- `pos`: 插入的位置索引,表示从哪个位置开始插入新数据。
- `c`: 要插入的单个字符。
- `n`: 表示要插入多少次相同的字符。
- `str`: 另一个字符串对象或者 C 风格字符串。
#### 返回值
返回当前字符串的一个引用 (`string&`),允许链式调用。
---
### 示例代码
以下是一些具体的使用案例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string s = "Hello World";
// 在第6位插入空格
s.insert(5, " ");
std::cout << "After inserting space: " << s << std::endl;
// 在第0位插入多个相同字符
s.insert(0, 3, '!');
std::cout << "After inserting multiple characters: " << s << std::endl;
// 在第7位插入另一字符串
s.insert(7, "Beautiful");
std::cout << "After inserting another string: " << s << std::endl;
return 0;
}
```
运行上述程序会得到以下输出:
```
After inserting space: Hello World
After inserting multiple characters: !!!Hello World
After inserting another string: !!!Hello BeautifulWorld
```
---
### 性能优化提示
当频繁执行字符串拼接或插入操作时,建议预先分配足够的存储空间以减少内存重新分配带来的开销。可以通过 `reserve()` 方法实现这一点[^5]:
```cpp
s.reserve(new_size);
```
此外,在处理大规模字符串拼接场景下,可以考虑利用右值引用和移动语义来进一步提升效率,正如之前提到的技术细节所描述的那样[^1]。
---
阅读全文
相关推荐



















