1. 初识STL与string容器
作为一名C++开发者,STL(Standard Template Library)是我们日常开发中不可或缺的利器。STL提供了六大核心组件:容器(Containers)、算法(Algorithms)、迭代器(Iterators)、仿函数(Functors)、适配器(Adapters)和分配器(Allocators)。这些组件共同构成了C++标准库中最强大的工具集。
在众多STL容器中,string可能是我们最早接触也最常用的一个。不同于C语言中以'\0'结尾的字符数组,C++的string是一个真正的类,它封装了字符串的各种操作,让字符串处理变得简单而高效。
提示:虽然string常被归类为容器,但在STL的官方分类中它属于"序列容器"的一种特化实现,专门用于处理字符序列。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. string的核心构造方法
2.1 四种基础构造方式
string类提供了多种构造函数,其中最常用的有四种:
-
默认构造:
string()- 创建一个空字符串对象
- 内存中实际会分配一个小缓冲区(通常是15或16字节)
-
C风格字符串构造:
string(const char* s)- 用C风格字符串初始化
- 会自动计算字符串长度(直到遇到'\0')
-
填充构造:
string(size_t n, char c)- 创建包含n个字符c的字符串
- 常用于初始化特定长度的填充字符串
-
拷贝构造:
string(const string& s)- 通过另一个string对象构造新对象
- 执行深拷贝,新对象与原对象独立
cpp复制// 构造示例
string emptyStr; // 空字符串
string fromCStr("Hello"); // 从C字符串构造
string filled(5, 'A'); // "AAAAA"
string copied(fromCStr); // 拷贝构造
2.2 进阶构造方法
除了基础构造,string还提供了一些更灵活的构造方式:
- 子串构造:`string(const string&
