📅  最后修改于: 2023-12-03 15:13:56.750000             🧑  作者: Mango
在C++中,unordered_map是一个哈希表实现的关联容器,用于存储键值对。unordered_map中的key_eq()函数用于比较两个键是否相等。
unordered_map使用哈希函数将键映射到存储桶(bucket)中,并使用key_eq()函数来比较键的相等性。默认情况下,key_eq()是std::equal_to
unordered_map<Key, T, Hash, KeyEqual> myMap;
Key
: 键的类型。T
: 值的类型。Hash
: 哈希函数的类型,默认使用std::hashKeyEqual
: 比较键相等性的函数对象的类型,默认使用std::equal_to#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap = {
{"apple", 1},
{"banana", 2},
{"orange", 3}
};
// 获取key_eq函数对象
auto keyEqual = myMap.key_eq();
// 比较键的相等性
bool isEqual = keyEqual("apple", "apple");
if (isEqual) {
std::cout << "The keys are equal." << std::endl;
} else {
std::cout << "The keys are not equal." << std::endl;
}
return 0;
}
运行结果:
The keys are equal.
unordered_map中的key_eq()函数可以用于获取键相等性比较函数对象,通过该函数对象,我们可以自定义键的相等性判断逻辑。这在需要特定的键相等性比较时非常有用,使得unordered_map更加灵活和可定制。