在C++ STL中的unordered_multimap find()函数

在C++ STL中的unordered_multimap find()函数

C++ STL中,unordered_multimap是一种哈希表结构,它可以快速地插入、查找、删除键值对。对于需要进行频繁查找和删除操作的情况,unordered_multimap是一个很好的选择。

unordered_multimap的find()函数用于查找指定键的值,它返回一个表示位置的迭代器,如果找到指定键对应的值,则迭代器指向该键值对;如果未找到,则迭代器指向unordered_multimap的end()位置。下面是unordered_multimap的find()函数的基本用法:

#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
    unordered_multimap<string, int> u;
    u.insert(make_pair("apple", 3));
    u.insert(make_pair("banana", 2));
    u.insert(make_pair("apple", 4));
    auto it = u.find("apple");
    if (it != u.end()) {
        cout << "Key: " << it->first << ", Value: " << it->second << endl;
    } else {
        cout << "Key not found." << endl;
    }
    return 0;
}

上述代码声明了一个unordered_multimap对象u,并向其中插入3个键值对。其中,键”apple”对应的值包括3和4。接着,我们通过调用find()函数查找”apple”对应的值。如果找到了,即it不等于u.end(),那么就输出该键值对的信息。如果没有找到,就输出”Key not found.”。

unordered_multimap的find()函数可以接受的参数有多种,它既可以接受键值对的键作为参数,也可以接受一个键值对类型的迭代器作为参数。下面是以键值对迭代器为参数的示例代码:

auto it = u.find(make_pair("apple", 3));
if (it != u.end()) {
    cout << "Key: " << it->first << ", Value: " << it->second << endl;
} else {
    cout << "Key not found." << endl;
}

在这个例子中,我们调用find()函数查找键值对(make_pair(“apple”, 3)),即键为”apple”、值为3的键值对。输出结果与前面的例子相同。

unordered_multimap的find()函数使用哈希表实现,插入、查找、删除等操作的时间复杂度均为O(1)。因此,unordered_multimap是一种高效的存储和管理键值对的容器。

结论

unordered_multimap在C++ STL中的find()函数可以快速地查找指定键的值,并返回表示位置的迭代器。使用该函数,可以高效地存储和管理键值对。在实际编程中,我们可以灵活运用unordered_multimap和find()函数,以满足不同的需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程