,C++ 是初学者可能遇到的最强大、最令人生畏的编程语言之一。原因很简单。它需要大量代码来实现所需的输出。标准模板库或 STL 可以帮助您解决这个难题。
,考虑到为排序和搜索等功能编写代码所消耗的时间和精力,STL 可以帮助您只用一行代码执行所有这些操作。这个库对于解决问题和准备技术面试非常有用。
,标准模板库或 STL 是一个 C++ 库,由预构建的函数和容器组成。它包括一些用于常见数据结构(如向量、堆栈、队列)的突出模板类,以及一些方便的算法函数(如二进制搜索),以使编程更容易。
,让我们更深入地了解一下算法和容器,因为它们是 STL 中最常用的组件。
,<algorithm>头文件是 STL的一部分,它由几个算法函数组成,可以使用这些算法函数来代替手动编码它们。包括的一些算法是二进制搜索、排序和反向,它们非常有用。
,首先,您需要在 C++ 文件中导入<algorithm>标头。语法如下:
,对于即将出现的方法,以具有 {6, 2, 9, 1, 4} 值的数组变量为例。
,sort()函数可帮助您按升序对指定数据结构内的所有元素进行排序。这个函数有两个参数:开始迭代器和结束迭代器。
,语法:,这是一个简单的例子:,输出:,
,reverse(),reverse()函数反转指定数据结构中元素的 顺序。它接受两个参数:开始迭代器和结束迭代器。
,语法:,这是上述方法的一个简短示例:,输出:,
,函数 *max_element() 和*min_element() 分别返回指定数据结构内的最大值和最小值。这两个函数都接受两个参数:开始迭代器和结束迭代器。
,语法:,让我们找出这些函数在示例数组上调用它们时返回的值:,输出:,
,binary_search()
,binary_search ()方法用于查找指定值是否存在于数据结构中。它接受三个参数:开始迭代器、结束迭代器和要查找的值。
,二进制搜索仅适用于已排序的数据结构。因此,您需要先调用sort()方法,然后再调用binary_search()方法。
,语法:,这是此方法的演示:,输出:,
,count()方法返回数据结构中指定值的出现次数。它接受三个参数:开始迭代器、结束迭代器和要计数的值。
,语法:,这是此方法的示例:
,输出:,
,容器是存储对象和数据的数据结构。向量、列表、堆栈、队列、集合和映射是根据指定的原始数据类型在其中存储数据的一些示例。您可以通过在 C++ 文件中导入它们各自的标头来使用这些容器。
,在初始化容器变量时,您需要在 <>括号内提及原始数据,例如 int、 char、 string 。
,让我们更详细地探索其中一些容器:
,向量是可调整大小且使用灵活的动态数组。当您从向量中插入或删除元素时,它会自动调整向量的大小。这类似于 Java 中的ArrayList 数据结构。
,句法:,#include <vector>
,vector<data_type> vaiable_name;
,以下是一些重要的向量方法:
,输出:,
,在队列数据结构中,元素从后面插入,从前面删除。因此,它遵循 FIFO(“先进先出”)方法。
,句法:,以下是一些重要的队列方法:
,输出:,
,堆栈容器在 LIFO 方法上运行。LIFO 代表“后进先出”。数据从同一端推送和弹出。
,语法:,以下是一些重要的堆栈方法:
,输出:,
,集合容器用于保存唯一值,元素的值一旦插入集合就不能更改。集合中的所有元素都以排序方式存储。set 容器类似于Python 中的 set 数据结构
,句法:,#include <set>
,set<data_type> variable_name;,以下是一些重要的设置方法:
,输出:,就像所有其他技能一样,练习对于充分利用 STL 至关重要。这些容器和算法可以帮助您节省大量时间并且易于使用。从练习上面显示的示例开始,您最终也会开始在自己的项目中使用它。
,但是,如果这是您第一次学习 C++,请先学习基础知识,然后再继续了解 STL。
© 版权声明
文章版权归作者所有,未经允许请勿转载。