C++ unordered_map::key_eq() 函数



C++ 函数 **std::unordered_map::key_eq()** 用于根据比较返回布尔值。如果发生等价关系,则返回 true;否则,返回 false。

键等价比较是一个谓词,它接受键类型的两个参数,并返回一个布尔值,指示它们是否被认为是等价的。默认谓词是 equal_to<key_type>,它返回的结果与对参数应用等于运算符 (==) 相同。

语法

以下是 std::unordered_map::key_eq() 函数的语法。

key_equal key_eq() const;

参数

此函数不接受任何参数。

返回值

如果发生等价关系,则此函数返回布尔值 true;否则,返回 false。

示例 1

让我们看一下下面的示例,我们将演示 key_eq() 函数的使用。

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main () {
   unordered_map<string,string> um;
   bool case_insensitive = um.key_eq()("jerry","JERRY");
   cout << "mymap.key_eq() is ";
   cout << ( case_insensitive ? "case insensitive" : "case sensitive" );
   cout << endl;
   return 0;
}

输出

让我们编译并运行上述程序,这将产生以下结果:

mymap.key_eq() is case sensitive

示例 2

在下面的示例中,我们使用 key_eq() 函数来检查 unordered_map 的两个键是否相同。

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main () {
   unordered_map<string,string> um;
   bool equal = um.key_eq()("tutorialspoint","TUTORIALSPOAINT");
   if(equal){
      cout<<"both are similar\n";
   }
   else{
      cout<<"dissimilar\n";
   }
   return 0;
}

输出

以下是上述代码的输出:

dissimilar

示例 3

考虑下面的示例,我们创建一个接受整数值的 unordered_map,并应用 key_eq() 函数来检查 unordered_map 的两个键是否相同。

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main () {
   unordered_map<int,int> um;
   bool equal = um.key_eq()(105, 105);
   if(equal)
      cout<<"similar\n";
   else
      cout<<"dissimilar";
   return 0;
}

输出

上述代码的输出如下:

similar
广告