C++ STL详解:vector与set操作演示

需积分: 0 0 下载量 146 浏览量 更新于2024-08-30 收藏 69KB DOC 举报
"STL.doc滴滴滴滴" STL(Standard Template Library,标准模板库)是C++编程语言中的一部分,它提供了高效且灵活的数据结构和算法。在这个文档中,主要介绍了两个重要的容器:`vector`和`set`,以及与它们相关的操作。 1. **vector动态数组** `vector`是一种动态数组,它允许在运行时调整大小。可以使用下标或者迭代器进行访问。`#include<vector>`用于包含`vector`相关的头文件。以下是一些基本操作的例子: - **大小**:通过`size()`函数获取vector的元素个数。 - **是否为空**:使用`empty()`检查vector是否为空。 - **增加**:`push_back()`在vector末尾添加元素。 - **插入**:`insert()`允许在指定位置插入元素,例如在下标3的位置插入9。 - **删除**:`erase()`用于删除单个元素或一段元素,`pop_back()`删除最后一个元素,`clear()`清空所有元素。 - **排序**:使用`sort()`对vector进行排序,可选地提供自定义比较函数`cmp`。 - **查找**:`find()`函数寻找特定元素,如果找到则返回迭代器,否则返回`end()`。 - **迭代器**:提供了正向和反向迭代器,以及遍历vector的方法。 2. **迭代器** 迭代器是STL中访问容器内元素的主要方式,有以下几种类型: - **正向迭代器**:`begin()`返回首元素的迭代器,`end()`返回超出末尾的迭代器。 - **反向迭代器**:`rbegin()`返回末元素的反向迭代器,`rend()`返回前于首元素的反向迭代器。 - **遍历**:可以使用迭代器遍历vector,例如通过for循环实现。 3. **reverse函数** `reverse()`函数用于反转容器内的元素,例如反转`vector`中的一部分。 4. **set集合** `set`是一个自动去重并自动排序的容器。`#include<set>`用于包含set相关的头文件。set支持的操作包括: - **大小**:同样通过`size()`获取元素数量。 - **是否为空**:使用`empty()`判断set是否为空。 - **插入**:`insert()`插入元素到set中,自动处理重复项。 - **查找**:`find()`查找指定元素并返回迭代器。 set还支持自定义排序规则,例如使用`greater<int>`可以使元素按降序排列。 5. **set的特性** - **自动去重**:set中的元素不允许重复,插入时会自动去除重复项。 - **自动排序**:set会自动根据元素的比较规则进行排序,默认是升序,可以通过模板参数自定义排序方式。 在实际编程中,STL容器如`vector`和`set`以及它们提供的操作极大地提高了代码的效率和可读性。理解并熟练运用这些数据结构和算法,对于提升C++编程能力至关重要。