C++ STL详解:vector, map, set及sort用法
4星 · 超过85%的资源 需积分: 10 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算法的使用。在实际编程中,理解并熟练运用这些工具,可以极大地提高代码的效率和可读性。
2010-04-03 上传
2011-05-06 上传
2024-12-24 上传
2024-12-24 上传
2024-12-24 上传
zhengge007
- 粉丝: 0
- 资源: 17