📜  cpp 中的映射 - C++ (1)

📅  最后修改于: 2023-12-03 14:40:14.847000             🧑  作者: Mango

C++中的映射(Map)

简介

在C++中,映射(Map)是一种常用的数据结构,它提供了一种用于存储键值对(Key-Value)关系的方式。每个键(Key)在映射中是唯一的,并且可以通过键快速地访问值(Value)。映射是基于红黑树实现的,因此它的插入、删除和查找操作的时间复杂度都是O(log n)。使用映射,程序员可以轻松地实现许多常见的应用,如词频统计、电话簿和字典等。

创建映射

要在C++中创建一个映射,首先需要包含头文件<map>

#include <map>

然后,可以使用std::map模板来定义一个映射对象。下面的示例代码演示了如何创建一个映射,其中键是整数类型,值是字符串类型。

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

这样就创建了一个空的映射对象myMap

添加元素

可以使用insert()函数向映射中添加新的键值对。下面的示例代码演示了如何向映射myMap中添加一个键为1,值为"hello"的元素。

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

也可以使用下标操作符[]来添加元素。如果键不存在,则会创建一个新的键值对。

myMap[2] = "world";
访问元素

可以使用下标操作符[]来访问映射中的元素。如果键不存在,则会创建一个新的键值对。

std::string value = myMap[1];

还可以使用find()函数来查找指定键的元素。如果找到了键,则返回指向键值对的迭代器;如果未找到,则返回指向映射末尾的迭代器。

std::map<int, std::string>::iterator it = myMap.find(2);
if (it != myMap.end()) {
    std::string value = it->second;
}
删除元素

可以使用erase()函数来删除映射中的元素。可以指定要删除的键,也可以指定指向要删除键值对的迭代器。

myMap.erase(1);             // 删除键为1的元素
myMap.erase(myMap.begin()); // 删除第一个键值对
遍历映射

可以使用范围for循环来遍历映射中的所有键值对。下面的示例代码演示了如何遍历映射myMap中的所有元素。

for (const auto& pair : myMap) {
    std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
总结

映射是C++中常用的数据结构,用于存储键值对关系。通过使用映射,程序员可以高效地操作存储在其中的数据。在本介绍中,我们了解了如何创建映射、添加和删除元素、访问元素以及遍历映射中的所有元素。希望这些信息对你来说是有用的,并且能够帮助你更好地理解和使用C++中的映射。