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

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

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

介绍

在 C++ STL 中的 unordered_multiset 中,key_eq() 函数用于判断两个元素的键值是否相同。即它是一个用来比较键值相等的二元谓词(binary predicate)。

其函数原型为:

bool key_eq() const;
参数

该函数没有参数。

返回值

该函数返回一个布尔值,表示两个元素的键值是否相等。若相等,则返回 true;否则返回 false。

代码示例

下面是一个使用 unordered_multiset 和 key_eq() 函数的简单例子:

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_multiset<int> s {1, 2, 2, 3, 4, 5};
    
    int target = 2;
    
    std::cout << "The value " << target << " appears in the unordered_multiset " << s.count(target) << " times." << std::endl;
    
    std::cout << "Iterating over the elements:" << std::endl;
    
    for (auto i = s.begin(); i != s.end(); ++i) {
        if (s.key_eq()(target, *i)) {
            std::cout << "Found " << target << "!" << std::endl;
        }
    }
    
    return 0;
}

在这个例子中,我们创建了一个包含一些整数的 unordered_multiset。我们希望找出其中值为 2 的元素的个数,并迭代 over 这个容器,查找所有的值为 2 的元素。

在 for 循环中,我们调用了 s.key_eq()(也可以使用 s.key_eq{},它们是等价的)来创建一个用于比较键值的二元谓词对象。然后我们通过调用该对象加上要查找的键值和每个元素的键值来判断它们是否相等。

最后的输出结果应该是:

The value 2 appears in the unordered_multiset 2 times.
Iterating over the elements:
Found 2!
Found 2!

以上就是对 C++ STL 中的 unordered_multiset key_eq() 函数的介绍和使用示例。