在C++11和C++17中,插入地图(std::map
)的方法主要有两种:使用下标操作符(operator[]
)和使用成员函数insert()
。
operator[]
)下标操作符用于访问或插入元素到std::map
中。如果键不存在,它会创建一个新的元素并初始化。
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> myMap;
// 插入元素
myMap["apple"] = 1;
myMap["banana"] = 2;
// 访问元素
std::cout << "apple: " << myMap["apple"] << std::endl;
std::cout << "banana: " << myMap["banana"] << std::endl;
return 0;
}
insert()
insert()
函数用于插入元素到std::map
中,如果键已经存在,则不会插入。
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> myMap;
// 插入元素
auto result = myMap.insert(std::make_pair("apple", 1));
if (result.second) {
std::cout << "Inserted apple: " << result.first->second << std::endl;
}
result = myMap.insert(std::make_pair("apple", 2));
if (!result.second) {
std::cout << "apple already exists with value: " << result.first->second << std::endl;
}
return 0;
}
std::map
:键值对的集合,键是唯一的,且按键排序。std::map
是一个很好的选择。使用insert()
函数时,如果键已经存在,插入操作会失败,insert()
函数返回的pair
对象的第二个元素为false
。
auto result = myMap.insert(std::make_pair("apple", 2));
if (!result.second) {
std::cout << "apple already exists with value: " << result.first->second << std::endl;
}
使用下标操作符operator[]
可以直接更新已存在的键的值。
myMap["apple"] = 3; // 更新已存在的键的值
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云