📜  C++ STL中的unordered_multimap key_eq()函数(1)

📅  最后修改于: 2023-12-03 15:29:51.066000             🧑  作者: Mango

C++ STL中的unordered_multimap key_eq()函数

key_eq()函数是C++ STL中unordered_multimap容器的成员函数之一。该函数返回一个比较器,用于在unordered_multimap容器中比较键的相等性。

语法
key_equal key_eq() const

其中,key_equal是一个模板类型参数,表示键相等性的比较器类型。

参数

无参数。

返回值

返回一个比较器对象,用于比较unordered_multimap容器中的键。默认情况下,key_eq()返回一个默认比较器,使用==运算符比较键的相等性。

示例
#include <iostream>
#include <unordered_map>
#include <string>

int main() {
    std::unordered_multimap<int,std::string> my_map = {
        {1,"apple"},
        {2,"banana"},
        {3,"cherry"},
        {4,"apple"}
    };
    
    auto hasher = my_map.hash_function();
    auto eq = my_map.key_eq();
    
    std::cout << "hash of 1: " << hasher(1) << std::endl;
    std::cout << "hash of 2: " << hasher(2) << std::endl;
    std::cout << "hash of 3: " << hasher(3) << std::endl;
    std::cout << "hash of 4: " << hasher(4) << std::endl;
    
    std::cout << "key=1 equals key=4: " << eq(1,4) << std::endl;
    std::cout << "key=2 equals key=3: " << eq(2,3) << std::endl;
    
    return 0;
}

输出:

hash of 1: 1
hash of 2: 0
hash of 3: 1
hash of 4: 1
key=1 equals key=4: 1
key=2 equals key=3: 0

在这个例子中,我们创建了一个unordered_multimap容器,并向其中插入了四个键/值对。然后,我们使用hash_functor()函数获取了容器的哈希函数,并使用key_eq()函数获取了容器的键相等性比较器。我们对容器中的键进行了哈希,并比较了一些键的相等性。

总结

key_eq()函数是unordered_multimap容器的成员函数之一,用于返回一个比较器,用于比较容器中的键的相等性。默认情况下,返回一个默认比较器,使用==运算符比较键的相等性。在使用unordered_multimap容器时,可以使用key_eq()函数获取键相等性比较器,进一步扩展容器的使用场景。