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

C++(28):容器类 <map>

目录

一、核心概念

二、基本语法

1. 声明与初始化

2. 插入元素

3. 访问元素

4. 遍历

5. 删除元素

三、特点

1. 自动排序

2. 键的唯一性

3. 高效查找

4. 自定义排序规则

5. 内存与性能

四、实例代码

五、对比其他容器

六、功能函数

 ​编辑


一、核心概念

<map> 是一种 关联容器(Associative Container),其核心特性如下:

  1. 键值对存储
    每个元素是一个 pair<const Key, Value>,由 唯一键(Key) 和 值(Value) 组成。

  2. 自动排序
    元素按键(Key)的升序自动排序(默认规则,可自定义):在 <map> 中,默认的排序规则是按照键值(Key)进行升序排序。每一个键值在插入到 map 中时,map 会根据当前的键值与已有的键值进行比较,依据升序原则将该键值插入到合适的位置,从而保证整个容器中的键值始终处于有序状态。

  3. 底层实现
    基于红黑树(Red-Black Tree)实现,保证插入、删除、查找的时间复杂度为 O(log n)


二、基本语法

1. 声明与初始化

                需要包含头文件,#include <map>。 

#include <map>
using namespace std;// 声明一个键为string、值为int的map
map<string, int> scores;// 初始化列表(C++11+)
map<string, int> students = {{"Alice", 90},{"Bob", 85},{"Charlie", 95}
};
2. 插入元素

// 使用insert插入pair
students.insert(make_pair("David", 88));// 使用operator[]插入或修改
students["Eve"] = 92;  // 键不存在时插入,存在时修改值
3. 访问元素

// 通过键访问(若键不存在会插入默认值)
cout << students["Alice"];  // 输出90// 安全访问:使用find避免自动插入
auto it = students.find("Frank");
if (it != students.end()) {cout << it->second;  // it->first是键,it->second是值
}
4. 遍历

// 迭代器遍历
for (auto it = students.begin(); it != students.end(); ++it) {cout << it->first << ": " << it->second << endl;
}// 范围for循环(C++11

相关文章:

  • 前端学习笔记element-Plus
  • GaussDB(PostgreSQL)查询执行计划参数解析技术文档
  • 嵌入式学习的第二十六天-系统编程-文件IO+目录
  • AJAX get请求如何提交数据呢?
  • 阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
  • Ajax01-基础
  • 数据仓库工具箱第三版——读书笔记(未完)
  • jvm安全点(五)openjdk17 c++源码垃圾回收之安全点阻塞状态线程在安全点同步中无需调用block函数的详细流程解析
  • Origin绘制多因子柱状点线图
  • 鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter
  • uniapp打包报错:重新在manifest.json中生成自己的APPID
  • Java-根据路径获取JSON字符串的value值
  • 程序代码篇---Pytorch实现LATM+APF轨迹预测
  • MySQL安全加固:权限管控与加密实践
  • python实现web请求与回复
  • Oracle 11G RAC重启系统异常
  • Android-ViewModel+LiveData学习总结
  • flutter 项目调试、flutter run --debug调试模式 devtools界面说明
  • 结构性断裂:中年失业潮与婚姻解体的崩溃逻辑
  • 使用 vip 加入两台 master 节点
  • 车床加工东莞网站建设/做引流的公司是正规的吗
  • 动态网站开发加载图片/搜索引擎优化的流程
  • 做宠物网站心得/国际国内新闻最新消息今天
  • 怎么把网站管理系统/招聘网站排名
  • 电子商务网站建设的目的是开展网络营销/网站seo搜索
  • 网站建设的看法有哪些/户外广告