C++ unordered_multimap::operator==() 函式



C++ 的 std::unordered_multimap::operator==() 函式用於檢查或比較兩個 unordered_multimap 是否相等。如果兩個 unordered_multimap 相等,則返回 true,否則返回 false。

當兩個 multimap 具有相同的資料型別時,此函式才能正常工作。如果嘗試比較資料型別不同的 unordered_multimap,則會顯示錯誤。

語法

以下是 std::unordered_multimap::operator== 函式的語法。

bool operator==(const unordered_multimap<Key,T,Hash,Pred,Alloc>& first,const unordered_multimap<Key,T,Hash,Pred,Alloc>& second);

引數

  • first − 第一個 unordered_multimap 物件。
  • second − 第二個 unordered_multimap 物件。

返回值

如果兩個 unordered_multimap 相等,則此函式返回 true,否則返回 false。

示例 1

在下面的示例中,讓我們看看 unordered_multimap::operator== 函式的用法。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_map<char, int> umm1;
   unordered_map<char, int> umm2;
   if (umm1 == umm2)
      cout << "Both unordered_maps are equal" << endl;
   umm1.emplace('a', 1);
   if (!(umm1 == umm2))
      cout << "Both unordered_maps are not equal" << endl;
   return 0;
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Both unordered_multimaps are equal
Both unordered_multimaps are not equal

示例 2

讓我們看下面的示例,我們將對儲存有相同元素但順序不同的 multimap 使用 operator==() 函式。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> umm1 = {{'C', 3}, {'A', 5}, {'B', 2}, {'A', 1}, {'D', 4}};
   unordered_multimap<char, int> umm2 = {{'D', 4}, {'A', 5}, {'A', 1}, {'B', 2}, {'C', 3}};
   if (umm1 == umm2)
      cout << "Both unordered_multimaps are equal" << endl;
   else
      cout << "Bothe are not equal"<<endl;
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出:

Both unordered_multimaps are equal

示例 3

考慮另一種情況,我們將對型別相同但元素不同的 multimap 使用 operator==() 函式。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> umm1 = {{'E', 5}, {'f', 6}, {'g', 7}, {'H', 8}};
   unordered_multimap<char, int> umm2 = {{'D', 4}, {'A', 1}, {'B', 2}, {'C', 3}};
   if (umm1 == umm2)
      cout << "Both unordered_multimaps are equal" << endl;
   if (!(umm1 == umm2))
      cout << "Both unordered_multimaps are not equal" << endl;
   return 0;
}

輸出

以下是上述程式碼的輸出:

Both unordered_multimaps are not equal

示例 4

下面的示例將建立一個儲存不同資料型別的 multimap,並應用 operator==() 函式來檢查兩者是否相等。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> umm1 = {{'E', 5}, {'f', 6}, {'g', 7}, {'H', 8}};
   unordered_multimap<int, int> umm2 = {{1, 4}, {2, 1}, {2, 2}, {4, 3}};
   if (umm1 == umm2)
      cout << "Both unordered_multimaps are equal" << endl;
   if (!(umm1 == umm2))
      cout << "Both unordered_multimaps are not equal" << endl;
   return 0;
}

輸出

上述程式碼的輸出如下:

ERROR!
廣告