21xrx.com
2024-12-22 20:29:01 Sunday
登录
文章检索 我的文章 写文章
C++中的Map数据结构用法介绍
2023-07-09 16:57:13 深夜i     --     --
C++ Map 数据结构 用法 介绍

Map是C++ STL中的一个关联容器,可以存储键值对。Map是基于红黑树实现的,因此查找和插入操作的时间复杂度为log(n)。

使用Map的第一步是包含头文件。Map是一个模板类,因此需要定义键和值的类型。例如,要使用Map来存储字符串和整数的对应关系,可以这样定义:


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

接下来可以通过insert()函数向Map中插入元素。insert()函数有两种方式,一种是插入单个元素,另一种是插入一组元素。例如,插入一个元素可以这样写:


myMap.insert(std::make_pair("hello", 1));

插入一组元素可以这样写:


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

  "hello",

  "world",

  "foo",

  "bar"

};

可以使用[]操作符来访问Map中的元素。如果Map中不存在对应的键,则会自动增加该键并将其对应的值设为默认值。例如:


std::cout << myMap["hello"] << std::endl; // 输出1

std::cout << myMap["goodbye"] << std::endl; // 输出0

Map也提供了at()函数来访问元素,与[]操作符的区别在于如果访问不存在的键,at()函数会抛出异常。例如:


std::cout << myMap.at("hello") << std::endl; // 输出1

std::cout << myMap.at("goodbye") << std::endl; // 抛出异常

Map的迭代器遍历方式与vector和list相同,例如:


std::map<std::string, int>::iterator it = myMap.begin();

while (it != myMap.end()) {

  std::cout << it->first << " " << it->second << std::endl;

  ++it;

}

Map提供了很多常用的函数,例如size()函数获取Map中元素的数量,clear()函数清空Map中的元素,erase()函数删除指定键的元素等等。使用Map能够方便地实现键值对的映射,是C++编程中很实用的数据结构之一。

  
  

评论区

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