鱼C论坛

 找回密码
 立即注册
查看: 1275|回复: 2

c++中map的详细用法

[复制链接]
发表于 2023-10-13 23:43:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对map函数还有很多不会用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-13 23:44:14 | 显示全部楼层
在C++中,map是一种关联式容器,它提供了一种将键映射到值的方法。以下是map的详细用法:

1. 包含头文件

首先,需要包含头文件<map>。

2. 定义map变量

定义一个map变量,可以使用以下语法:
std::map<key_type, value_type> map_name;

其中,key_type是键的数据类型,value_type是值的数据类型,map_name是map变量的名称。

例如,定义一个存储字符串为键、整数为值的map变量:
std::map<std::string, int> my_map;

3. 插入元素

可以使用insert()函数向map中插入元素。insert()函数的参数是一个std::pair对象,该对象包含要插入的键和值。

例如,向上面的my_map变量中插入一个键为"apple",值为5的元素:
my_map.insert(std::make_pair("apple", 5));

4. 访问元素

可以使用下标运算符[]或find()函数访问map中的元素。下标运算符[]返回与指定键相关联的值,如果该键不存在,则插入一个具有该键的新元素。

例如,访问键为"apple"的值:
int value = my_map["apple"];

或者,使用find()函数访问键为"apple"的值:
auto iter = my_map.find("apple");
if (iter != my_map.end()) {
    int value = iter->second;
}

5. 删除元素

可以使用erase()函数删除map中的元素。erase()函数的参数是要删除的键。

例如,删除键为"apple"的元素:
my_map.erase("apple");

以上就是map的基本用法。需要注意的是,map中的元素是按照键的顺序排序的,因此可以使用begin()和end()函数遍历map中的元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-13 23:45:12 | 显示全部楼层
Map是C++标准库中的关联容器,它提供了一种键-值(key-value)对的映射关系。以下是Map的详细用法:

1. 包含头文件:
首先需要包含<map>头文件。

2. 定义和初始化:
可以通过多种方式来定义和初始化Map。下面是几个例子:
#include <map>// 定义一个空的Mapstd::map<int, std::string> myMap;// 使用初始化列表创建Map并赋初值std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};// 通过插入键-值对来初始化Mapstd::map<int, std::string> myMap;myMap.insert(std::make_pair(1, "one"));myMap.insert(std::make_pair(2, "two"));myMap.insert(std::make_pair(3, "three"));
3. 插入元素:
可以使用insert()函数或[]运算符来插入键-值对。
std::map<int, std::string> myMap;// 使用insert()函数插入键-值对myMap.insert(std::make_pair(1, "one"));myMap.insert(std::make_pair(2, "two"));myMap.insert(std::make_pair(3, "three"));// 使用[]运算符插入键-值对myMap[4] = "four";myMap[5] = "five";
4. 访问元素:
可以使用[]运算符或at()函数来访问Map中的元素。
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};// 使用[]运算符访问元素std::cout << myMap[1] << std::endl;  // 输出:one// 使用at()函数访问元素std::cout << myMap.at(2) << std::endl;  // 输出:two
5. 迭代Map:
可以使用迭代器来遍历Map中的所有键-值对。
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};// 使用auto关键字和迭代器进行遍历for (auto it = myMap.begin(); it != myMap.end(); ++it) {    std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;}
6. 查找元素:
可以使用find()函数来查找指定的键,并返回指向该键的迭代器。如果找不到,find()函数将返回指向末尾元素的迭代器。
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};// 使用find()函数查找键为2的元素auto it = myMap.find(2);if (it != myMap.end()) {    std::cout << "Key found, Value: " << it->second << std::endl;} else {    std::cout << "Key not found" << std::endl;}
7. 删除元素:
可以使用erase()函数来删除指定的键或迭代器对应的元素。
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};// 删除键为2的元素myMap.erase(2);// 使用迭代器删除元素auto it = myMap.find(3);if (it != myMap.end()) {    myMap.erase(it);}
这些是Map的一些常用操作和用法。希望对你有所帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表