在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 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦