为什么即使两个向量不同,比较运算符“ ==”仍返回“ YES”?

-4 c++ stl

我尝试运行此代码,即使认为这两个向量具有不同的内容且大小不同,结果仍然显示“是”。我不明白比较运算符如何与向量一起使用

#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)

预期的输出为“否”,但收到的输出为“是”

lub*_*bgr 8

在这里,您将从中删除所有元素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)

此时,两个向量仅包含一个元素:10operator ==然后执行应做的事情。