在C++ STL中使用unordered_map insert函数
unordered_map是C++的标准模板库(STL)中的容器之一,它提供了一种键值对的映射关系。因此,unordered_map在存储和访问数据方面是非常高效的。本文将介绍如何使用unordered_map中的insert函数添加键值对。
unordered_map的简介
unordered_map是哈希表,其内部使用散列表的机制实现,存储的键-值对无序且唯一。因此,当我们需要快速查找元素时,unordered_map是一个非常好的选择。unordered_map支持O(1)的逻辑访问时间。
我们首先需要包含头文件
#include <unordered_map>
接下来,我们可以使用下面的代码声明一个unordered_map:
unordered_map<string, int> umap;
我们定义了一个名为umap的unordered_map类型,其中的键是string类型,值是int类型。
插入元素
让我们看看如何在unordered_map中插入元素。在C++语言中,我们使用insert()函数来将元素插入unordered_map中。insert()函数可以使用两种不同的语法:
umap.insert(make_pair(key, value));
umap.insert({key, value});
其中“key”是要插入的键,“value”是对应的值。因此,在顶部的代码中,我们使用insert()函数将键“key”映射到值“value”上。
下面是一个简单的示例,使用unordered_map在插入键值对时打印每次插入的值:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, int> umap;
// 插入元素
umap.insert(make_pair("apple", 40));
cout << "apple: " << umap["apple"] << endl;
umap.insert(make_pair("banana", 60));
cout << "banana: " << umap["banana"] << endl;
umap.insert(make_pair("orange", 25));
cout << "orange: " << umap["orange"] << endl;
umap.insert(make_pair("watermelon", 90));
cout << "watermelon: " << umap["watermelon"] << endl;
return 0;
}
输出结果:
apple: 40
banana: 60
orange: 25
watermelon: 90
使用insert()函数检查键的存在性和插入元素
此外,我们还可以使用insert()函数检查在unordered_map中键是否存在,如果不存在就插入该键对应的元素。在这种情况下,insert()函数返回一个布尔值:
umap.insert({key, value});
/* 检查unordered_map是否之前包含键 */
if (umap.find(key) == umap.end()) {
// 插入键对应的元素
umap.insert({key, value});
cout << "Key not found. Inserted pair : {" << key << ", " << value << "}" << endl;
} else {
cout << "Key found. Value : " << umap[key] << endl;
}
我们使用find()函数查找键是否存在:
if (umap.find(key) == umap.end())
如果键不存在,则会在unordered_map中插入该键对应的值:
umap.insert({key, value});
否则,程序将输出键的值:
cout << "Key found. Value : " << umap[key] << endl;
下面是一个示例,它演示了如何使用insert()函数检查键是否存在,如果键不存在,则插入其对应的值:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<string, int> umap;
// 检查键是否存在,如果不存在则插入其对应的值
umap.insert({"apple", 40});
if (umap.find("apple") != umap.end()) {
cout << "Key found. Value : " << umap["apple"] << endl;
}
umap.insert({"banana", 60});
if (umap.find("banana") != umap.end()) {
cout << "Key found. Value: " << umap["banana"] << endl;
}
umap.insert({"orange", 25});
if (umap.find("orange") == umap.end()) {
umap.insert({"orange", 25});
cout << "Key not found. Inserted pair : {orange, 25}" << endl;
} else {
cout << "Key found. Value : " << umap["orange"] << endl;
}
umap.insert({"watermelon", 90});
if (umap.find("watermelon") != umap.end()) {
cout << "Key found. Value: " << umap["watermelon"] << endl;
}
return 0;
}
输出结果:
Key found. Value : 40
Key found. Value: 60
Key not found. Inserted pair : {orange, 25}
Key found. Value: 90
总结
unordered_map是C++的标准模板库之一,它提供了键值对的存储和访问机制。插入元素到unordered_map的方法是使用insert()函数,它可以检查键是否存在并插入键值对。在这篇文章中,我们展示了如何使用insert()函数插入元素到unordered_map中。希望这篇文章对于你来说是有帮助的!