21xrx.com
2024-12-22 22:09:23 Sunday
登录
文章检索 我的文章 写文章
C++ Map类型简介
2023-07-05 07:31:43 深夜i     --     --
C++ Map 类型 简介

C++的Map类型是一种关联容器,它将键映射到值。Map类型存储键值对,并按照键的大小进行排序。这意味着,使用Map类型时,所有的键都是唯一的,而且它们按照一定的顺序排列。

Map类型的实现依赖于红黑树的数据结构。这种数据结构是一种自平衡二叉查找树,可以保持树的高度在对数范围内,从而保证了查找、插入、删除等操作的时间复杂度均是O(log n)。

Map类型支持以下操作:

1. 插入一个键值对

2. 删除一个键值对

3. 查找一个键的值

4. 遍历所有的键值对

下面是一些常用的Map类型操作和示例:

1. 插入一个键值对


#include <map>

#include <iostream>

int main()

{

  std::map<std::string, int> myMap;

  myMap.insert(std::pair<std::string, int>("John", 25));

  myMap.insert(std::make_pair("Mary", 30));

  myMap["Tom"] = 35; // 也可以使用这种方式插入

  return 0;

}

2. 删除一个键值对


#include <map>

#include <iostream>

int main()

{

  std::map<std::string, int> myMap;

  myMap.insert(std::pair<std::string, int>("John", 25));

  myMap.insert(std::make_pair("Mary", 30));

  myMap["Tom"] = 35;

  myMap.erase("Tom"); // 删除Tom和对应的值

  return 0;

}

3. 查找一个键的值


#include <map>

#include <iostream>

int main()

{

  std::map<std::string, int> myMap;

  myMap.insert(std::pair<std::string, int>("John", 25));

  myMap.insert(std::make_pair("Mary", 30));

  myMap["Tom"] = 35;

  std::cout << myMap["Mary"] << std::endl; // 输出30

  return 0;

}

4. 遍历所有的键值对


#include <map>

#include <iostream>

int main()

{

  std::map<std::string, int> myMap;

  myMap.insert(std::pair<std::string, int>("John", 25));

  myMap.insert(std::make_pair("Mary", 30));

  myMap["Tom"] = 35;

  for (auto& x : myMap)

    std::cout << x.first << ": " << x.second << std::endl;

  

  return 0;

}

Map类型是一个非常方便的工具,在处理键值对的时候常常被使用。它的实现基于红黑树,保证了时间复杂度,也便于使用和管理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复