刚装好开发环境,打开IDE准备写代码,很多人第一件事就是想知道:C++标准库到底包含哪些东西?别看它叫“标准”,其实它就像你电脑里预装的一套工具箱,不用自己从零造轮子。
最常用的:头文件和功能模块
比如你要处理字符串,不用自己写一堆字符数组操作,直接用 <string> 就行。这个头文件提供了 string 类型,能拼接、查找、替换,比 C 风格的 char 数组方便太多。
#include <iostream>
#include <string>
int main() {
std::string name = "Hello";
name += " World";
std::cout << name << std::endl;
return 0;
}
再比如你要存一组数据,用 <vector> 就能搞定动态数组。它可以自动扩容,还能配合循环遍历,写算法时特别顺手。
输入输出相关:iostream 系列
写程序总得跟用户打个招呼吧?<iostream> 提供了 cin 和 cout,一个读输入,一个打输出。调试的时候打几行日志,靠它就够了。
容器类:不只是 vector
除了 vector,还有 <list>(双向链表)、<map>(键值对)、<set>(去重集合)等等。比如你做个通讯录,用 map 存姓名和电话,查起来飞快。
算法支持:algorithm 头文件
排序、查找、翻转这些常见操作,都在 <algorithm> 里。调个 sort 函数就能给数组排好序,不用自己写冒泡或者快排。
#include <vector>
#include <algorithm>
std::vector<int> nums = {5, 2, 8, 1};
sort(nums.begin(), nums.end()); // 变成 1,2,5,8
智能指针:memory 头文件
以前手动 new 和 delete 容易出错,现在有 unique_ptr 和 shared_ptr,内存自动管理,程序跑完自动回收,不怕忘删导致内存泄漏。
时间与随机数
想测程序运行多久?用 <chrono> 记时间点。想生成随机数?<random> 比老式的 rand() 更靠谱,还能指定分布范围。
其他实用组件
<fstream> 用来读写文件,<thread> 支持多线程,<mutex> 防止数据打架,<functional> 能传函数当参数。这些都是现代 C++ 开发的常用装备。
把这些头文件配上编译器,就像把工具装进背包。写代码时随手调用,效率高还不容易出错。刚学 C++ 的时候,不妨一个个试过去,看看哪个顺手,哪个解决你手头的问题。