C++ unordered_set::key_eq() 函数



C++ 的 std::unordered_set::key_eq() 函数用于根据比较返回布尔值,如果发生等价则返回 true;否则,返回 false,这取决于 unordered_set 容器使用的键等价比较谓词,该谓词比较元素是否相等。

键等价比较是一个谓词,它接受键类型的两个参数,并返回一个布尔值,指示它们是否应被视为等价。

语法

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

key_equal key_eq() const;

参数

此函数不接受任何参数。

返回值

此函数返回一个键相等比较对象。

示例 1

在下面的示例中,我们将使用 unordered_set::key_eq() 函数并检查该函数是否区分大小写。

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

int main () {
   unordered_set<string> uSet;
   bool case_insensitive = uSet.key_eq()("jerry","JERRY");
   cout << "uSet.key_eq() is ";
   cout << ( case_insensitive ? "case insensitive" : "case sensitive" );
   cout << endl;
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

uSet.key_eq() is case sensitive

示例 2

考虑下面的示例,我们将使用 key_eq() 函数检查 unordered_set 是否相似。

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

int main () {
   unordered_set<string> uSet;
   bool equal = uSet.key_eq()("tutorialspoint","tutorialspoint");
   if(equal){
      cout<<"both elements are similar\n";
   } else{
      cout<<"dissimilar\n";
   }
   return 0;
}

输出

以上代码的输出如下:

both elements are similar

示例 3

让我们看看下面的示例,我们将使用 key_eq() 函数检查给定的元素是否相似。

#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;

int main() {
   unordered_set<int> uSet;
   bool	r = uSet.key_eq()( 105, 115);

   cout << "Integers are ";
   if (r == 1) {
      cout << "same";
   } else {
      cout << "not same";
   }
   return 0;
}

输出

以上代码的输出如下:

Integers are not same
广告