1. string容器基础概念与特性
string是C++标准库中用于处理字符串的容器类,它封装了字符序列并提供了一系列便捷的操作方法。与传统的C风格字符串(以'\0'结尾的字符数组)相比,string容器具有以下核心优势:
- 自动内存管理:string对象会自动处理内存分配和释放,开发者无需手动管理字符数组的内存
- 丰富的操作接口:提供了数十种成员函数用于字符串操作,包括插入、删除、查找、替换等
- 安全性保障:内置边界检查,减少缓冲区溢出风险
- 与STL无缝集成:可以配合算法库中的泛型算法使用
string底层通常实现为动态数组,会根据需要自动扩容。其典型实现会预留额外容量(capacity)以避免频繁重新分配内存,当size超过capacity时会按一定策略(如加倍)重新分配更大空间。
提示:虽然string称为"容器",但它并不是STL中的序列容器(如vector),而是作为basic_string模板类的特化版本存在,专为字符串操作优化。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 字符串插入操作详解
2.1 插入函数原型与重载
string类提供了多个insert()函数重载,满足不同插入需求:
cpp复制// 在pos位置插入count个字符ch
basic_string& insert(size_type pos, size_type count, CharT ch);
// 在pos位置插入C风格字符串s
basic_string& insert(size_type pos, const CharT* s);
// 在pos位置插入字符串s的前count个字符
basic_string& insert(size_type pos, const CharT* s, size_type count);
// 在pos位置插入string对象str
basic_string& insert(size_type pos, const basic_string& str);
// 在pos位置插入string对象str的子串[pos2, pos2+count)
basic_string& insert(size_type pos, const basic_string& str,
