我尝试运行此代码,即使认为这两个向量具有不同的内容且大小不同,结果仍然显示“是”。我不明白比较运算符如何与向量一起使用
#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;
}
Run Code Online (Sandbox Code Playgroud)
预期的输出为“否”,但收到的输出为“是”
在这里,您将从中删除所有元素example:
if(!example.empty())
{
example.clear();
}
Run Code Online (Sandbox Code Playgroud)
因此,第一矢量此时为空。然后,您创建another_vector,默认为空。现在,
another_vector.push_back(10);
example.push_back(10);
Run Code Online (Sandbox Code Playgroud)
此时,两个向量仅包含一个元素:10。operator ==然后执行应做的事情。
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |