STL之string类(C++)
1.string类核心定位
std::string
本质是对 “字符序列” 的封装,内部通过动态数组存储字符,并自动管理内存(分配、扩容、释放),对外提供了简洁的接口用于字符串的创建、修改、拼接、查找等操作。
1.1 使用前提
头文件包含<string>
提前声明using namespace std
1.2 核心优势
- 自动内存管理:无需手动
malloc
/free
或new
/delete
,长度会根据内容自动调整,避免内存泄漏。- 安全访问:提供
at()
方法访问字符时会检查越界(抛异常),避免 C 字符串的越界访问风险。- 丰富操作接口:内置拼接(
+
/+=
)、查找(find
)、替换(replace
)等方法,无需手动实现。- 兼容 C 字符串:可通过
c_str()
方法转换为const char*
,适配需要 C 风格字符串的场景(如printf)
2.string的接口使用
2.1 构造函数
示例:
2.2 对容器进行操作的接口
size()和length();:返回字符串的长度
max_size(): 返回字符串的最大容量
capacity:当前string储存的最大容量
reserve(): 改变capacity的最大容量
empty(): 判断是否为空
2.3 对容器里面存储的值做修改
operator[]:返回对字符串中位置pos的字符引用
push_back():将字符添加到字符串末尾
insert():在指定位置插入字符串或者字符
erase(): 在指定位置删除字符串
示例:
3.string类的模拟实现
继续加油!!!