C++STL容器:高效编程必备指南
好的我们来学习C STL中最常用的几种容器。STLStandard Template Library提供了多种高效的容器类型用于存储和管理数据。1.vector动态数组概念可变大小的数组支持随机访问通过下标 $i$。适用场景需要频繁访问元素尾部插入/删除较多时。基本操作#include vector std::vectorint vec; // 创建空vector vec.push_back(10); // 尾部插入元素 int x vec[0]; // 访问元素需确保下标有效 vec.pop_back(); // 删除尾部元素 size_t len vec.size(); // 获取元素数量2.list双向链表概念元素通过指针双向链接插入/删除效率高但不支持随机访问。适用场景频繁在任意位置插入/删除。基本操作#include list std::listint lst; lst.push_back(20); // 尾部插入 lst.push_front(5); // 头部插入 lst.pop_front(); // 删除头部元素 auto it lst.begin(); // 获取迭代器指向首元素 it; // 移动迭代器3.map有序键值对概念基于红黑树实现按键排序默认升序键唯一。适用场景需通过键快速查找/更新值。基本操作#include map std::mapstd::string, int scores; scores[Alice] 90; // 插入或更新键值对 auto it scores.find(Bob); // 查找键返回迭代器 if (it ! scores.end()) { int score it-second; // 获取值 } scores.erase(Alice); // 删除键值对4.set有序唯一值集合概念存储唯一值并自动排序。适用场景去重或有序集合操作。基本操作#include set std::setint uniqueNums; uniqueNums.insert(42); // 插入元素 if (uniqueNums.count(42)) { // 检查元素是否存在 uniqueNums.erase(42); // 删除元素 }5.queue队列FIFO概念先进先出只允许在队尾插入、队首删除。适用场景任务调度、广度优先搜索。基本操作#include queue std::queueint q; q.push(10); // 入队 int front q.front(); // 访问队首 q.pop(); // 出队迭代器遍历通用所有容器均支持迭代器遍历std::vectorint vec {1, 2, 3}; for (auto it vec.begin(); it ! vec.end(); it) { std::cout *it ; // 输出1 2 3 }总结容器特点时间复杂度平均vector动态数组随机访问尾部插入 $O(1)$list双向链表任意插入 $O(1)$map键值对有序查找 $O(\log n)$set唯一值集合有序插入 $O(\log n)$queue先进先出入队/出队 $O(1)$选择合适的容器能大幅提升代码效率和可读性

相关新闻

比话降AI使用教程:3步搞定知网AIGC检测

比话降AI使用教程:3步搞定知网AIGC检测

比话降AI使用教程:3步搞定知网AIGC检测 知网AI率超标,改来改去还是降不下来?其实方法很简单,用对工具三步就能搞定。 这篇教程手把手教你用比话降AI(www.bihuapass.com)处理论文,全程不超过20…

2026/7/5 8:05:46 阅读更多 →
基于python的语音合成实现

基于python的语音合成实现

文章目录一、项目技术二、项目内容和功能介绍三、核心代码四、效果图五 、资料获取一、项目技术 开发语言:Python python框架:Django 软件版本:python3.7/python3.8 数据库:mysql 5.7或更高版本 数据库工具:Navicat11…

2026/7/3 15:45:31 阅读更多 →
ScalingLaws-2022-Chinchilla-4:如何使用已有论文中的经验公式与方法【复用方法,轻量标定自己的常数】

ScalingLaws-2022-Chinchilla-4:如何使用已有论文中的经验公式与方法【复用方法,轻量标定自己的常数】

可以参考这些论文的经验公式当“起跑线”,但不建议直接照抄当定律(尤其是把 Llama 3 的 A,αA,\alphaA,α 或 Chinchilla 的 D/N≈20D/N\approx 20

2026/7/4 20:45:41 阅读更多 →

最新新闻

openEuler安全设施实战指南:从日志分析到入侵检测的10个最佳实践 [特殊字符]

openEuler安全设施实战指南:从日志分析到入侵检测的10个最佳实践 [特殊字符]

openEuler安全设施实战指南:从日志分析到入侵检测的10个最佳实践 🔒 【免费下载链接】security-facility The repository for security facility SIG 项目地址: https://gitcode.com/openeuler/security-facility 前往项目官网免费下载&#xff1…

2026/7/5 8:06:17 阅读更多 →
NestOS-Config核心架构解析:深入理解rpm-ostree与ignition配置

NestOS-Config核心架构解析:深入理解rpm-ostree与ignition配置

NestOS-Config核心架构解析:深入理解rpm-ostree与ignition配置 【免费下载链接】nestos-config nestos-config provides base manifest configuration for building NestOS. 项目地址: https://gitcode.com/openeuler/nestos-config 前往项目官网免费下载&am…

2026/7/5 8:04:16 阅读更多 →
ExtFUSE社区贡献指南:如何参与这个开源文件系统革命

ExtFUSE社区贡献指南:如何参与这个开源文件系统革命

ExtFUSE社区贡献指南:如何参与这个开源文件系统革命 【免费下载链接】extfuse Extension Framework for FUSE 项目地址: https://gitcode.com/openeuler/extfuse 前往项目官网免费下载:https://ar.openeuler.org/ar/ ExtFUSE(Extensi…

2026/7/5 8:00:16 阅读更多 →
如何让英雄联盟游戏体验提升3倍?探索LeagueAkari的智能辅助革命

如何让英雄联盟游戏体验提升3倍?探索LeagueAkari的智能辅助革命

如何让英雄联盟游戏体验提升3倍?探索LeagueAkari的智能辅助革命 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾因错过对局…

2026/7/5 8:00:16 阅读更多 →
OpenEuler SONIC内核补丁与标准Linux内核的7个主要差异:网络性能优化终极指南

OpenEuler SONIC内核补丁与标准Linux内核的7个主要差异:网络性能优化终极指南

OpenEuler SONIC内核补丁与标准Linux内核的7个主要差异:网络性能优化终极指南 【免费下载链接】sonic-linux-kernel The OpenEuler kernel patches used with SONIC 项目地址: https://gitcode.com/openeuler/sonic-linux-kernel 前往项目官网免费下载&#…

2026/7/5 8:00:16 阅读更多 →
如何轻松获取高质量音乐:六音音源修复版完整使用指南

如何轻松获取高质量音乐:六音音源修复版完整使用指南

如何轻松获取高质量音乐:六音音源修复版完整使用指南 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 想要免费享受高品质音乐吗?六音音源修复版为你提供了完美的解决方案&…

2026/7/5 7:58:16 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻