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
廣告