在C++ STL中使用unordered_map insert函数

在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中。希望这篇文章对于你来说是有帮助的!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程