在C++编程中,map
是一种关联容器,它存储了键值对(key-value pairs),并根据键(key)进行排序。map
的用法非常广泛,可以在各种应用场景中使用,例如实现字典、记录学生成绩等。本文将详细介绍C++ map
的用法,包括创建、插入、查找、删除等操作。
在C++中,可以使用#include <map>
头文件来引入map
容器。要创建一个map
,需要指定键(key)和值(value)的类型。例如,要创建一个存储整数键和字符串值的map
,可以使用以下代码:
#include <map>
#include<string>
int main() {
std::map<int, std::string> myMap;
return 0;
}
2. 插入元素
可以使用insert
函数向map
中插入元素。例如,向上面创建的myMap
中插入一个键值对(1, "one"):
myMap.insert(std::make_pair(1, "one"));
也可以使用operator[]
直接插入元素。如果键已经存在于map
中,则会更新对应的值;如果键不存在,则会插入新的键值对。例如:
myMap[2] = "two";
3. 查找元素
可以使用find
函数查找map
中的元素。例如,查找键为1的元素:
auto it = myMap.find(1);
if (it != myMap.end()) {
std::cout << "Found: " << it->first << " -> " << it->second<< std::endl;
} else {
std::cout << "Not found"<< std::endl;
}
也可以使用operator[]
直接访问元素。需要注意的是,使用operator[]
时,如果键不存在,则会插入一个新的键值对,值将被默认初始化。例如:
std::cout << myMap[1]<< std::endl;
4. 删除元素
可以使用erase
函数删除map
中的元素。例如,删除键为1的元素:
myMap.erase(1);
也可以使用迭代器删除元素。例如:
auto it = myMap.find(2);
if (it != myMap.end()) {
myMap.erase(it);
}
5. 遍历map
可以使用迭代器遍历map
中的所有元素。例如:
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << " -> " << it->second<< std::endl;
}
6. 示例代码
下面是一个完整的示例代码,展示了如何使用map
容器实现一个简单的字典:
#include<iostream>
#include <map>
#include<string>
int main() {
std::map<std::string, std::string> dictionary;
// 插入元素
dictionary["apple"] = "一种水果";
dictionary.insert(std::make_pair("banana", "一种长条形水果"));
// 查找元素
auto it = dictionary.find("apple");
if (it != dictionary.end()) {
std::cout << "Found: " << it->first << " -> " << it->second<< std::endl;
} else {
std::cout << "Not found"<< std::endl;
}
// 删除元素
dictionary.erase("banana");
// 遍历map
for (auto it = dictionary.begin(); it != dictionary.end(); ++it) {
std::cout << it->first << " -> " << it->second<< std::endl;
}
return 0;
}
以上就是C++ map
的基本用法。希望对您有所帮助!
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦