C++ STL 快速入门:核心函数详解
需积分: 11 157 浏览量
更新于2024-08-31
收藏 686B TXT 举报
"STL常用函数总结"
在C++标准模板库(STL)中,程序员可以利用各种容器、迭代器和算法来高效地处理数据。以下是一些常用的STL函数,这些函数涵盖了`vector`、`set`、`map`、`priority_queue`以及`unordered_map`等容器的主要操作。
1. **`vector`**: `vector<int> vec` 是一个整数类型的动态数组。`iterator` 是一种指针,可以用来遍历和操作数组元素。
- `vec.push_back(t)`: 向向量末尾添加一个元素`t`。
- `vec.pop_back()`: 移除向量的最后一个元素。
- `vec.erase(a.begin()+5)`: 删除指定位置的元素,如第五个元素(基于零索引)。
- `vec.erase(it+1, it+4)`: 删除迭代器`it+1`到`it+4`之间的元素范围。
2. **`set`**: `set<int> se` 是一个不包含重复元素的集合。
- `se.insert(t)`: 将元素`t`插入集合,如果已经存在,则不进行操作。
- `se.count(t)`: 返回元素`t`在集合中出现的次数,对于`set`总是0或1。
- `se.empty()`: 检查集合是否为空。
- `se.erase(t)`: 删除集合中的元素`t`。
- `se.erase(b.begin()+5)`: 删除集合中指定位置的元素。
- `se.find()`: 查找元素`t`,返回迭代器指向找到的位置,如果找不到则返回`end()`。
3. **`map`**: `map<key, value> m` 是一个键值对的关联容器。
- `m.insert(pair<int, string>(123, "abc"))`: 插入一个键值对`(123, "abc")`。
- `m.begin()->first`: 获取第一个键值对的键。
- `m.begin()->second`: 获取第一个键值对的值。
- `m.find(t)`: 查找键`t`,返回迭代器指向找到的位置,如果找不到则返回`end()`。
- `m.erase(t)`: 删除键`t`对应的键值对。
- `m.count(t)`: 返回键`t`在映射中出现的次数,对于`map`总是0或1。
4. **`priority_queue`**: 优先队列,可以是升序(小根堆)或降序(大根堆)。
- `priority_queue<int, vector<int>, greater<int>> q`: 创建一个升序优先队列。
- `priority_queue<int, vector<int>, less<int>> q`: 创建一个降序优先队列。
- `priority_queue<int> q`: 默认创建大根堆。
- `q.push()`: 向队列中添加一个元素。
- `q.top()`: 获取但不删除队列顶部的元素。
- `q.pop()`: 移除并返回队列顶部的元素。
5. **`unordered_map`**: 哈希表,提供了近似常数时间的查找和插入操作。
- `unordered_map<key, value> m`: 创建一个键值对的哈希表。
- 操作与`map`类似,但通常执行速度更快,因为查找基于哈希函数而非树结构。
了解并熟练使用这些STL函数可以极大地提高C++编程的效率和代码质量。在实际应用中,根据需求选择合适的容器和算法,可以更好地管理和处理数据。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-09-05 上传
2023-08-24 上传
2020-09-03 上传
2018-09-01 上传
2022-04-30 上传
刘寺杰
- 粉丝: 0
- 资源: 4
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程