C++ STL详解:vector, map, set及sort用法

4星 · 超过85%的资源 需积分: 10 6 下载量 171 浏览量 更新于2024-10-04 收藏 116KB PDF 举报
"这篇文稿主要讲解了C++标准模板库(STL)中常见的三种容器——vector、map和set,以及排序算法Sort的使用方法。STL是C++的一个重要组成部分,提供了各种容器和算法来方便程序员管理和操作数据。本文档详细介绍了这些组件的基本用法和常见操作,以帮助读者理解和应用它们。" 在C++的STL中,vector是一种动态数组,可以方便地添加和删除元素。以下是对vector的详细说明: 1. 声明vector: 可以通过指定元素类型来创建vector,如`vector<int> a;`创建一个存储整数的vector,或`vector<MyType> a;`创建存储自定义类型MyType的vector。初始化vector时,可以指定大小和默认值,例如`vector<int> a(100, 0);`创建一个包含100个0的vector。 2. vector操作: - `size()`:返回vector的当前大小,即元素个数。 - `pop_back()`:移除最后一个元素,使vector长度减一。 - `push_back()`:在vector末尾添加一个新元素。 - `back()`:返回vector的最后一个元素。 - `clear()`:清空vector,使其长度变为0。 访问vector元素有两种方式,通过索引`a[i]`或安全访问的`a.at(i)`。后者在访问越界时会抛出异常,而前者不会。 接下来是map,它是一种关联容器,将键(key)与值(value)关联起来,提供快速查找功能: 1. map声明: `map<Key, Value> m;` 其中Key是键的类型,Value是值的类型。例如,`map<int, string> m;`创建一个键为整数,值为字符串的map。 2. map操作: - 插入元素:`m[key] = value;` 或 `m.insert(pair<Key, Value>(key, value));` - 查找元素:`m.find(key)` 返回指向对应键值对的迭代器。 - 删除元素:`m.erase(key)` 或 `m.erase(iterator);` 然后是set,一种不包含重复元素的集合容器: 1. set声明: `set<Value> s;` 其中Value是set中元素的类型。例如,`set<int> s;` 创建一个存储整数的set。 2. set操作: - 插入元素:`s.insert(value);` - 删除元素:`s.erase(value);` - 查找元素:`s.find(value)` 返回指向元素的迭代器。 最后,Sort算法用于对容器中的元素进行排序: 1. 使用Sort: `sort(start, end)` 其中start和end是待排序序列的迭代器。例如,对于一个vector,可以使用`sort(a.begin(), a.end());` 对vector a进行排序。 以上内容涵盖了STL中vector、map、set的基础操作以及Sort算法的使用。在实际编程中,理解并熟练运用这些工具,可以极大地提高代码的效率和可读性。