第一节 · 军械库 · 初识标准库
到目前为止,我们已经学习了 C++ 的基础语法——变量、类型、运算符、控制流、函数……这些是编程的基本功,就像习武之人需要先学会基本招式一样。
但光有基本招式是不够的,你还需要趁手的兵器。C++ 的标准库(Standard Library)就是这样一个"军械库",里面有各种各样的工具,可以帮助我们更高效地完成任务。
什么是标准库
标准库是 C++ 语言规范的一部分,由一系列预先编写好的代码组成。这些代码实现了许多常用的功能,比如输入输出、字符串处理、数学运算、容器、算法等等。
使用标准库,我们就不需要从零开始编写这些功能。这就像你做饭时不需要自己种菜、磨面粉一样——超市里有现成的食材,你只需要买回来烹饪即可。
我们其实已经在使用标准库了。还记得吗?
#include <iostream>
std::cout << "Hello!" << std::endl;iostream 就是标准库的一部分,它提供了输入输出功能。cout、cin、endl 都是标准库提供的对象。
命名空间 std
标准库中的所有内容都被放在一个名为 std 的命名空间中。命名空间是一种组织代码的方式,可以避免名字冲突。
要使用标准库中的内容,有几种方式:
方式一:每次使用时加上 std:: 前缀
std::cout << "Hello" << std::endl;
std::string name = "Alice";
std::vector<int> numbers;方式二:使用 using 声明
方式三:使用 using namespace 指令
using namespace std; 会将整个 std 命名空间的内容引入当前作用域,使用起来最方便。但在大型项目中,这种做法可能会导致名字冲突,因此很多人推荐只在小程序或函数内部使用。
常用的标准库头文件
标准库被组织成多个头文件,每个头文件提供特定的功能:
<iostream>
输入输出流
<string>
字符串类
<vector>
动态数组
<array>
固定大小数组(C++11)
<list>
双向链表
<map>
关联容器(键值对)
<set>
集合容器
<algorithm>
常用算法(排序、查找等)
<cmath>
数学函数
<cstdlib>
通用工具函数
<fstream>
文件输入输出
<sstream>
字符串流
<memory>
智能指针
<utility>
实用工具(如 pair)
要使用某个功能,首先需要包含对应的头文件:
一个简单的例子
让我们用标准库编写一个程序,读取一些数字,排序后输出:
在这个例子中,我们用到了:
vector:动态数组,可以自动扩展大小push_back:向数组末尾添加元素sort:排序算法begin()和end():返回迭代器,表示容器的起始和结束位置范围 for 循环(
for (int x : numbers)):遍历容器中的所有元素
看到了吗?使用标准库,我们只需几行代码就实现了数组的动态管理和排序,而不需要自己编写复杂的数据结构和算法。
数学函数
<cmath> 头文件提供了常用的数学函数:
为什么要学习标准库
提高效率:不需要重复造轮子,专注于业务逻辑。
代码质量:标准库经过广泛测试,比自己实现更可靠。
可移植性:标准库在所有支持 C++ 的平台上都可用。
性能优化:标准库的实现通常经过高度优化。
学习使用标准库,是成为一名合格 C++ 程序员的必经之路。
在接下来的章节中,我们将详细学习标准库中最常用的几个组件:字符串、向量、迭代器和数组。它们是处理数据的基础工具,掌握了它们,你就能更加得心应手地编写 C++ 程序。
习题
使用
<cmath>中的函数,编写一个程序计算直角三角形的斜边长度(已知两条直角边)。使用
vector和sort,编写一个程序对用户输入的字符串按字母顺序排序。
Last updated