C++如何使用map(映射)?(入门教程)

admin 百科 16
C++中map是基于红黑树的有序关联容器,按键升序存储键值对,支持O(log n)查找/插入/删除;需#include ,声明为std::map,常用[]、insert、emplace插入,find安全访问,范围for遍历。

C++如何使用map(映射)?(入门教程)-第1张图片-佛山资讯网

在C++中,map 是一种关联容器,用来存储“键-值”对(key-value pairs),并自动按键(key)升序排序。它底层基于红黑树实现,查找、插入、删除的时间复杂度都是 O(log n),适合需要有序、快速查找的场景。

如何声明和初始化 map

使用前需包含头文件:#include <map></map>,并通常配合 std:: 命名空间。

  • 基本声明:`std::map myMap;`
  • 常用组合:`std::map<:string int> scores;` —— 用姓名(字符串)查分数(整数)
  • 初始化方式:
    • 空构造:`std::map m;`
    • 列表初始化(C++11起):`std::map m = {{'a', 1}, {'b', 2}};`
    • 拷贝构造:`std::map m2 = m1;`

插入和访问元素

插入有多种写法,效果类似但行为略有不同;访问时注意避免意外创建元素。

  • m[key] = value;:若 key 不存在,会自动插入一个默认值(如 int 为 0,string 为空串),再赋值。慎用于只读查询
  • m.insert({key, value});m.insert(std::make_pair(key, value));:只插入,不覆盖已有 key
  • m.emplace(key, value);:原地构造,更高效(推荐用于大量插入)
  • 安全访问建议用 find()

    auto it = m.find("Alice");<br>if (it != m.end()) {<br>  std::cout << it->second; // 输出值<br>}

    登录后复制

遍历和修改 map

因为 map 有序,遍历时 key 自动从小到大(或按自定义比较规则)排列。

标签: ai c++ 键值对 排列 red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~