我尝试运行此代码,结果显示“是”,甚至认为这两个向量具有不同的内容并且具有不同的大小。我不明白比较运算符如何与向量一起工作
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector <int> example; //First vector definition
example.push_back(3);
example.push_back(10);
example.push_back(33);
for(int x=0;x<example.size();x++)
{
cout<<example[x]<<" ";
}
if(!example.empty())
{
example.clear();
}
vector <int> another_vector; //Second vector definition
another_vector.push_back(10);
example.push_back(10);
if(example==another_vector) //Comparison between the two vector
{
cout<<endl<<"YES";
}
else
{
cout<<endl<<"NO";
}
return 0;
}
预期输出为“否”但收到的输出为“是”
在这里,您将从example
中删除所有元素:
if(!example.empty())
{
example.clear();
}
因此,第一个向量是空的。然后,您创建another_vector
,默认为空。现在,
another_vector.push_back(10);
example.push_back(10);
此时,两个向量只包含一个元素:10
。 operator ==
做了它应该做的事情。