当前位置: 首页 > news >正文

C++的STL

C++ STL 快速入门指南

C++ STL(Standard Template Library,标准模板库)是 C++ 标准库的核心组成部分,提供了一套通用的容器迭代器算法函数对象,极大地提高了代码的复用性、效率和可读性。

STL 六大组件

  1. 容器 (Containers):存储数据集合的类模板。
  2. 迭代器 (Iterators):广义指针,用于遍历容器中的元素,连接容器与算法。
  3. 算法 (Algorithms):各种常用算法(排序、查找、复制等)的函数模板。
  4. 函数对象 (Function Objects):行为类似函数的对象(仿函数),用于算法的自定义操作。
  5. 适配器 (Adapters):对容器、迭代器或函数对象进行封装,改变其行为(如 stackqueue)。
  6. 分配器 (Allocators):负责内存管理,通常使用默认值。

最常用的容器

容器类型 容器名称 特点与适用场景
序列容器 vector 动态数组。支持随机访问,尾部插入/删除快,中间/头部慢。最常用
list 双向链表。不支持随机访问,任意位置插入/删除极快。
deque 双端队列。支持随机访问,头尾插入/删除快。
关联容器 set / multiset 有序集合,元素唯一/可重复。基于红黑树,查找/插入/删除 O(log n)。
map / multimap 有序键值对,键唯一/可重复。基于红黑树,用 key 快速查找 value。
无序关联容器 (C++11) unordered_set / unordered_map 哈希表实现。元素无序,查找/插入/删除平均 O(1),性能高。
容器适配器 stack 栈(LIFO),基于 dequelist 实现。
queue 队列(FIFO),基于 dequelist 实现。
priority_queue 优先队列(最大/最小值在队首),基于 vector + 堆算法。

常用算法(位于 <algorithm>

  • 排序sort(v.begin(), v.end())
  • 查找find(v.begin(), v.end(), target)
  • 遍历for_each(v.begin(), v.end(), [](int x){ cout << x; })
  • 变换transform(...)
  • 复制copy(...)
  • 反转reverse(...)

代码示例

#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <string>int main() {// 1. vector 容器std::vector<int> numbers = {5, 2, 8, 1, 9};// 2. 排序std::sort(numbers.begin(), numbers.end());// 3. 查找int target = 8;auto it = std::find(numbers.begin(), numbers.end(), target);if (it != numbers.end()) {std::cout << "找到 " << target << " 在索引 " << (it - numbers.begin()) << std::endl;}// 4. 范围 for 遍历for (int n : numbers) {std::cout << n << " ";}// 输出: 1 2 5 8 9std::cout << std::endl;// 5. map 示例std::map<std::string, int> ages = {{"Alice", 25}, {"Bob", 30}};std::cout << "Alice's age: " << ages["Alice"] << std::endl;return 0;
}
http://www.rkmt.cn/news/1372347.html

相关文章:

  • DLSS Swapper深度解析:如何实现跨平台游戏DLSS版本智能管理
  • 【优化调度】基于改进遗传算法求解带时间窗约束多卫星任务规划附Matlab代码
  • 2026年5月有实力的一体化污水提升泵站/一体化泵站厂家推荐河北铄康环保设备有限公司,水质适应性广各类浑浊污水均可稳定输送处理 - 品牌鉴赏师
  • 溧阳沙发翻新换皮换布面靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新换皮换布一站式服务 - 卓信营销
  • 建立在不同的基线模型上,GAT,GCN,和GIN
  • 2026年5月优秀的EPS外墙装饰/EPS装饰线条厂家推荐丰县建鑫泡沫制品有限公司,雕花构件定制打造建筑独特标识 - 品牌鉴赏师
  • 2026长岛民宿排名指南,长岛海东渔家民宿没白来! - 资讯纵览
  • 英语 听力 重读软件app
  • AI写作辅助平台8款AI写作辅助软件梯队榜,毕业护航!
  • 权威测评!2026年顶尖AI论文写作软件榜单,高质初稿轻松写
  • 2026 北京包包回收实测:上门回收估价 vs 线下实体店,哪个更划算 - 奢侈品回收测评
  • 如何利用AI工具变现:一个老程序员的真实观察
  • Claude在国内用不了?我挨个试了一遍
  • 纯视觉破界空间感知 自研体系领跑视频孪生领域
  • Tableau Server安全加固与合规运维实战指南
  • CVE-2017-17215实战复现:华为HG532路由器栈溢出漏洞深度解析
  • 2026年5月有实力的电磁阀厂家推荐钢特阀门科技有限公司,优化产品结构提升流体调控效能 - 品牌鉴赏师
  • 专业级GPU内存检测:MemTestCL的5个实战场景深度解析
  • Windows下JMeter高并发压测端口耗尽问题排查与修复
  • 【Java EE】IPv6
  • 因果推断与双机器学习在LED制造返工决策中的实战应用
  • 2026年5月诚信的气动元器件/气动附件厂家推荐钢特阀门科技有限公司,恪守经营本心打造靠谱气动配套产品 - 品牌鉴赏师
  • 2026广州除四害公司推荐榜:服务口碑排名谁更强 - 资讯纵览
  • 教育机构搭建AI编程实验室如何借助Taotoken管控学生用量与成本
  • 夏季前挡膜怎么选?固驰蓝闪幻蝶车窗膜给出不止隔热的答案
  • 沁源矿难警示:摆脱佩戴依赖,构建可靠井下人员定位体系
  • 李飞飞团队新作ESI-Bench:具身智能的ImageNet来了!
  • 卖瓦楞纸箱怎么找客户?下游工厂在哪里
  • 瑞安沙发翻新换皮换布面靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新换皮换布一站式服务 - 卓信营销
  • Python Anaconda,为什么要创建虚拟环境,Pycharm使用