为什么学习 string 类
在 C 语言中,字符串是以 '\0' 结尾的字符集合。虽然标准库提供了一些 str 系列函数,但这些函数与数据分离,不符合面向对象思想,且底层空间需手动管理,极易引发越界访问。
标准库中的 string 类
2.1 string 类基础
使用 string 类前,需包含 <string> 头文件并启用 using namespace std;。
2.2 auto 与范围 for
auto 关键字 C++11 赋予 auto 全新含义:它不再表示存储类型,而是作为类型指示符,由编译器推导变量类型。注意以下几点:
- 指针类型用
auto和auto*无区别,引用类型必须加&。 - 同一行声明多个变量时,类型必须一致,否则编译器报错。
- auto 不能作为函数参数,但可作为返回值(需谨慎)。
- auto 不能直接用于声明数组。
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main() {
int a = 1;
auto b = a; // 推导为 int
auto c = 'a'; // 推导为 char
auto y = &x; // 推导为 int*
auto *z = &x; // 显式指针
auto &m = x; // 引用
return 0;
}
范围 for 循环 C++11 引入基于范围的 for 循环,自动处理迭代器,减少出错概率。适用于数组和容器遍历。
int arr[] = {1, 2, 3, 4, };
( &e : arr) {
e++;
cout << e << ;
}
;
( c : str) {
cout << c << ;
}


