C++ 标准库 string 类详解
一、为什么学习 string 类?
在 C 语言中,字符串是以 char* 形式存在的字符数组,需要手动管理内存和长度,容易引发缓冲区溢出等安全问题。C++ 引入的 std::string 类封装了这些底层细节,提供了安全的动态字符串管理能力。
掌握 string 类不仅是日常开发的基础,也是理解 C++ 资源管理(RAII)、拷贝控制以及 STL 容器设计思想的关键。常见的字符串面试题往往围绕其底层实现、性能优化及边界处理展开。
二、C++ 标准库中的 string 类
使用 string 类前,需包含 <string> 头文件并启用命名空间:
#include <iostream>
#include <string>
using namespace std;
2.1)auto 和范围 for
auto 关键字
auto 的核心功能是让编译器根据初始值推导变量类型。使用时必须初始化。
auto x = 10; // 推导为 int
auto y = 3.14; // 推导为 double
auto ptr = &x; // 推导为 int*
声明指针时 auto 和 auto* 无区别,但声明引用时必须加 &,否则会发生值拷贝:
int x = 10;
int& ref = x;
auto c = ref; // c 是 int 类型,独立变量
auto& d = ref; // d 是 int& 类型,x 的别名
d = 30; // x 变为 30
注意:同一行声明多个变量时,它们必须是相同类型。auto 不能直接用于函数参数或数组声明。
范围 for 循环
C++11 引入了基于范围的 for 循环,简化了集合遍历:
for (declaration : range) {
// 循环体
}


