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

C++11 新增 STL 容器

重点掌握:std::array(静态数组)、std::forward_list(单向链表)、unordered系列(哈希容器)

1. std::array 安全静态数组

核心特点:
1.封装原生栈静态数组,大小编译期固定,不占用堆内存;
2.完美替代原生数组:不退化、支持边界检查、自带size()、兼容所有 STL 算法;
3.头文件:<array>

代码示例:

#include <iostream> #include <array> #include <algorithm> using namespace std; int main() { // 格式:array<类型, 固定大小> array<int, 5> arr = {1,3,2,5,4}; // 安全访问:at()越界抛异常,[]不检查(原生数组的缺点) arr.at(0) = 10; // arr.at(10) = 0; 越界直接报错,避免内存非法访问 // 支持STL算法+范围for遍历 sort(arr.begin(), arr.end()); for(int x : arr) cout << x << " "; // 2 3 4 5 10 return 0; }

2. std::forward_list 轻量单向链表

核心特点:
1.C++11 专为节约内存设计的单向链表;
2.对比std::list(双向链表):更省空间、仅支持前置迭代器、无 size ()(保证头插 / 删 O (1) 效率);
3.头文件:<forward_list>

代码示例:

#include <iostream> #include <forward_list> using namespace std; int main() { forward_list<int> fl = {1,2,3}; fl.push_front(0); // 头插O(1),核心优势 fl.insert_after(fl.begin(), 5); // 单向链表:只能在节点后插入 for(int x : fl) cout << x << " "; // 0 5 1 2 3 return 0; }

3. unordered 系列 哈希容器

核心特点:
包含:unordered_map/unordered_set/unordered_multimap/unordered_multiset;
底层哈希表,无序,平均查询 / 插入 / 删除 O(1)(远快于 map/set 的 O (logn));
1.对比 map/set(红黑树):查询更快,但无序;
2.头文件:<unordered_map>/<unordered_set>

代码示例:

#include <iostream> #include <unordered_map> using namespace std; int main() { unordered_map<string, int> umap; umap["张三"] = 18; umap["李四"] = 20; // 遍历无序 for(auto& p : umap) { cout << p.first << ":" << p.second << endl; } return 0; }
谢谢
http://www.jsqmd.com/news/966299/

相关文章:

  • Anthropic移除请求编排层:Claude 3.5内核级架构变革
  • MQTT协议抓包实战:用Wireshark分析连接OneNET的每一个数据包
  • MuleSoft企业级AI编排:构建LLM与ERP安全可控的智能流程
  • ROS2 进阶教程:深度剖析参数服务器管理技术实现与应用实践
  • 2026年国内珠宝展柜厂家专业度评测:浙江黄金柜台/温州奢侈品展柜/温州品牌专柜整店装修/温州商业展柜/温州商业空间展柜/选择指南 - 优质品牌商家
  • 从Java源码注释自动生成UML类图:PlantUML的另类用法与团队协作实践
  • 2019应急挑战杯CTF赛题复现资源包:Web/PWN/Flaskshop靶机源码+完整解题链
  • 保姆级教程:用QGIS 3.28切好瓦片,再用Nginx发布,Cesium秒加载(附完整代码)
  • 2026年Java工程师必修:Spring Boot工程化核心能力图谱
  • 告别模型部署焦虑:用TensorRT的trtexec工具,5分钟搞定ONNX模型转换与性能摸底
  • Gemini API快速上手:20分钟用curl跑通首个请求
  • 绑定or不绑?蓝V企业号启用CSDN AI营销套餐的5大决策依据,技术负责人连夜重审合同!
  • DPDK L3fwd参数避坑指南:如何正确配置portmask和core绑定提升转发效率
  • GT20L16S1Y字库芯片的‘竖置横排’和‘横置横排’到底啥区别?一篇讲透点阵数据与LCD驱动的匹配问题
  • PySpark MLlib分类实战:从数据清洗到Pipeline部署
  • 从无人机编队到室内定位:精度因子(DOP)的通俗解读与避坑指南
  • STM32F103用NTC热敏电阻做实时温度测量,带LCD显示和串口输出
  • 考研数学必看:1^∞型极限别再乱用等价无穷小了,矿爷(浙江大学)都强调的易错点
  • 深入理解Python作用域:从LEGB规则到闭包与非局部变量
  • Pandas数据思维重建:从Excel直觉到向量化工程实践
  • 别再套模板了!手把手教你用Markdown和Obsidian打造个性化保研推荐信素材库
  • Prompt Learning:让提示词成为可学习的第一类公民
  • RNN文本生成为何必须搭配Beam Search才能实用
  • 从零实现字符级文本生成器:LSTM+TensorFlow实战
  • LLM实验可复现性:SageMaker Pipelines与MLflow协同实践
  • NumPy数组操作核心指南:从内存布局到广播机制的工程实践
  • 2026年华北地区钢质百叶窗供应商综合排行盘点:防火电动百叶窗、不锈钢百叶窗、手动百叶窗、焊接格栅、空调铝合金格栅选择指南 - 优质品牌商家
  • 别光复制代码!深入解读NXP LPC54114在Keil5中的启动文件与中断向量表
  • LLM Token Masking策略:面向因果架构的注意力调控方法
  • 数据异常检测:从业务诊断出发的临床式处理框架