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



C++ `vector::operator==()` 函式用於測試兩個向量是否相等,如果向量匹配則返回 `true`,否則返回 `false`。`operator==` 首先檢查兩個容器的大小,如果大小相同,則按順序比較元素,並在第一次出現不匹配時停止比較。此成員函式從不丟擲異常,`operator==()` 函式的時間複雜度為線性。

語法

以下是 C++ `vector::operator==()` 函式的語法:

template <class T, class Alloc>
bool operator== (const vector<T,Alloc>& lhs, const vector<T,Alloc>& rhs);

引數

  • lhs − 表示第一個向量
  • rhs − 表示第二個向量

示例 1

讓我們考慮以下示例,我們將使用 `opertor==()` 函式。

#include <iostream>
#include <vector>
using namespace std;

int main(){
   using namespace std;   
   vector <int> myvector1{11,22,33,44,55};
   vector <int> myvector2{11,22,33,44,55};
   if(myvector1==myvector2)
      cout <<"Equal";
   else
      cout <<"UnEqual";
}

輸出

編譯並執行上述程式後,將產生以下結果:

Equal

示例 2

考慮另一種情況,我們將比較不相等的容器。

#include <iostream>
#include <vector>

int main(){
   using namespace std;   
   vector<int> myvector1{11,22,33,44};
   vector<int> myvector2{111,222,33,44};
   if(myvector1==myvector2)
      cout<<"True";
   else
      cout<<"False";
}

輸出

執行上述程式後,將產生以下結果:

False

示例 3

在以下示例中,我們將使用 `push_back()` 函式插入值,並檢查值是否匹配。

#include <iostream>
#include <vector>

int main(){
   using namespace std;   
   std::vector<string> myvector1;
   std::vector<string> myvector2;
   myvector1.push_back("RX100");
   myvector1.push_back("Q7");
   myvector1.push_back("MAYBACH GLS");
   myvector2.push_back("RX100");
   myvector2.push_back("Q7");
   myvector2.push_back("MAYBACH GLS");
   if (std::equal(myvector1.begin(), myvector1.end(), myvector2.begin()))
      std::cout << "Same" << std::endl;
   else
      std::cout << "Not Same" << std::endl;
}  

輸出

執行上述程式後,將產生以下結果:

Same
廣告