二进制'==':矢量C ++找不到运算符错误

时间:2018-08-12 16:22:34

标签: c++ vector compiler-errors stdvector

当我在VS 2017中编译我的C ++程序时,出现编译错误,提示:binary'==':未找到采用std::vector<int, std::allocator_Ty>类型的左操作数的运算符 (或没有可接受的转换)。 这是我第一次使用二维向量,我不确定这是否可能是原因的一部分。我的代码如下。有人可以帮忙找到原因吗?

#include <vector>
#include <algorithm>

using namespace std;

vector<vector<int>> feeds;

void foo()
{
    find(feeds.begin(), feeds.end(), feeds[0][0]);
}

1 个答案:

答案 0 :(得分:3)

您正在尝试将int与向量进行比较。

feeds.erase(find(feeds.begin(), feeds.end(), feeds[l][k]));行有两个向量迭代器(feeds.begin()feeds.end()),但是feeds[l][k]指的是特定的向量位置而不是向量。 feeds[l]是指向量,应改为使用。

但是,当您已经知道要擦除的向量(find)时,为什么需要feeds[l]。我建议您检查一下逻辑,然后再去那里。