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