当我在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]);
}
答案 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]
。我建议您检查一下逻辑,然后再去那里。