STL(学习打卡记录)较详细 STL(Standard Template Library)是一种泛型编程的库,提供了许多有用的容器、算法和函数来帮助开发者编写高效且可靠的代码。本文将详细介绍STL中的容器,包括 Vector、Stack、Queue、Priority Queue和Set。 Vector Vector是STL中的一种容器,用于存储元素的集合。Vector可以看作是一种动态数组,能够根据需要自动扩容或缩容。Vector的使用方法如下: * 声明:`vector<int> arr;` * 添加元素:`arr.push_back(1);` * 删除元素:`arr.pop_back();` * 获取数组长度:`arr.size();` * 清空数组:`arr.clear();` * 判断数组是否为空:`arr.empty();` * 改变数组的长度:`arr.resize(n,m);` 注意:在使用Vector时,需要注意预先指定长度,以避免性能问题。 Stack Stack是一种先进后出(FILO)的数据结构,常用于实现递归、函数调用栈等。Stack的使用方法如下: * 声明:`stack<int> st;` * 添加元素:`st.push(1);` * 删除元素:`st.pop();` * 获取栈顶元素:`st.top();` * 判断栈是否为空:`st.empty();` 注意:Stack不可以访问内部元素,只能进出栈,访问栈顶。 Queue Queue是一种先进先出(FIFO)的数据结构,常用于实现生产者消费者模型、消息队列等。Queue的使用方法如下: * 声明:`queue<int> que;` * 添加元素:`que.push(1);` * 删除元素:`que.pop();` * 获取队首元素:`que.front();` * 获取队尾元素:`que.back();` 注意:Queue只能访问队首队尾,其他元素无法访问。 Priority Queue Priority Queue是一种特殊的Queue,能够根据元素的优先级来排序。Priority Queue的使用方法如下: * 声明:`priority_queue<int> pque;` * 添加元素:`pque.push(1);` * 删除元素:`pque.pop();` * 获取堆顶元素:`pque.top();` 注意:Priority Queue只能读取堆顶元素,其他元素无法读取。 Set Set是一种集合数据结构,能够自动去重和排序。Set的使用方法如下: * 声明:`set<int> st;` * 添加元素:`st.insert(1);` * 删除元素:`st.erase(2);` * 查询元素:`st.find(2);` * 计数元素:`st.count(2);` * 清空集合:`st.clear();` * 判断集合是否为空:`st.empty();` * 获取集合长度:`st.size();` 注意:Set的操作时间复杂度都是O(lg n)。
剩余17页未读,继续阅读
- 粉丝: 7
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 利用Gurobi求解设施选址问题(也被称为位置分析)代码
- 【哈哈哈哈哈啊啊啊啊啊哈】
- ubuntu20.04实测运行fast-lio-LC算法-测试1数据包(lidar、imu)
- 世界环境绩效指数EPI(2000-2022年).zip
- 中国大陆高等院校名单 最新大学名单 xls 全国高等学校名单 2024年06月20日更新
- 【安卓毕业设计】Android平台兼职发布系统的设计与开发源码(完整前后端+mysql+说明文档+LW).zip
- 【安卓毕业设计】焦点新闻APP的设计与实现源码(完整前后端+mysql+说明文档+LW).zip
- “知识产权示范”多期DID-地级市(第1至6批).zip
- 【安卓毕业设计】基于andriod的网上影院app的设计与实现源码(完整前后端+mysql+说明文档+LW).zip
- 计算机辅助设计:AutoCAD工程制图教程【资源库】_1_20240821112411964.zip