- 14.1 C++ 标准模板库
- 14.2 STL 算法
- 14.3 STL 迭代器
- 14.4 STL 适配器
- 14.5 STL 函数对象
- 14.1.1.1 什么是STL,C++ 标准模板库(STL)是一套功能强大的 C++ 模板类和函数的集合,它提供了一系列通用的、可复用的算法和数据结构。
- 14.1.1.2 STL的好处,具有代码重用、可移植性、高效性、抽象性、安全性和丰富的功能等优点。
- 14.1.1.3 STL重要组件,STL包括容器(Containers)、算法(Algorithms)和迭代器(Iterators)多个主要组件。
- 14.2.1.1 find:在容器中查找指定元素,它返回一个迭代器,指向第一个匹配的元素,如果没有找到匹配的元素,则返回容器的end()迭代器。
- 14.2.1.2 count:计算容器中指定元素的个数。count算法可以应用于各种容器类型,如vector、list、array等。
- 14.2.1.3 min_element和max_element:找到容器中的最小和最大元素
- 14.2.1.4 all_of、any_of和none_of:检查容器中的元素是否满足特定条件,用于对容器中的元素进行条件判断。
- 14.2.1.5 accumulate:计算容器中元素的累加和,可以适应各种累加需求。
- 14.2.1.6 equal:比较两个容器是否相等,还可以接受一个可选的二元操作函数,用于指定自定义的元素比较操作。
- 14.2.1.7 find_if:在容器中查找满足特定条件的元素,用于在容器中查找满足指定条件的第一个元素。
- 14.2.2.1 sort:对容器进行排序
- 14.2.2.2 reverse:反转容器中的元素顺序
- 14.2.2.3 fill:将容器中的元素设置为指定的值
- 14.2.2.4 transform:对容器中的元素进行转换操作
- 14.2.2.5 remove和remove_if:从容器中删除指定元素或满足特定条件的元素
- 14.2.2.6 replace和replace_if:将容器中的元素替换为指定的值或满足特定条件的值
- 14.2.3.1 copy:将一个容器的元素复制到另一个容器
- 14.2.3.2 merge:合并两个有序容器
- 14.2.3.3 unique:从容器中删除重复的元素
- 14.2.3.4 partition:根据特定条件将容器分成两个部分
- 14.2.3.5 sort和stable_sort:对容器中的一部分元素进行排序
- 14.3.1.1 输入迭代器(Input Iterator):只能读取容器中的元素,且只能向前移动。
- 14.3.1.2 输出迭代器(Output Iterator):只能写入容器中的元素,且只能向前移动。
- 14.3.1.3 前向迭代器(Forward Iterator):既可以读取也可以写入容器中的元素,且可以向前移动。
- 14.3.1.4 双向迭代器(Bidirectional Iterator):与前向迭代器类似,但可以向前和向后移动。
- 14.3.1.5 随机访问迭代器(Random Access Iterator):具有最强大的功能,可以在常量时间内进行随机访问、读取和写入。
- 14.4.1.1 std::stack:基于deque、list或vector实现的堆栈(后进先出)容器适配器。
- 14.4.1.2 std::queue:基于deque、list或vector实现的队列(先进先出)容器适配器。
- 14.4.1.3 std::priority_queue:基于vector实现的优先队列容器适配器。
- 14.4.2.1 std::reverse_iterator:用于反向遍历容器的适配器。
- 14.4.2.2 std::insert_iterator:用于在容器中插入元素的适配器。
- 14.4.2.3 std::ostream_iterator:用于将元素输出到输出流的适配器。
- 14.4.3.1 std::bind:用于绑定函数和参数,生成新的可调用对象。
- 14.4.3.2 std::function:用于封装可调用对象,提供统一的接口。
- 14.5.1.1 函数指针:可以将函数指针作为函数对象使用。
- 14.5.1.2 函数对象类:可以定义一个类,重载operator()运算符,使其成为一个可调用对象。
- 14.5.1.3 Lambda表达式:Lambda表达式是一种匿名函数,可以直接在需要函数对象的地方定义和使用。