当我在VS 2017中编译我的C++程序时,出现编译错误,提示:binary'==':未找到采用std::vector<int, std::allocator_Ty>
类型的左操作数的运算符
(或没有可接受的转换)。
这是我第一次使用二维 vector ,我不确定这是否可能是原因的一部分。我的代码如下。有人可以帮忙找到原因吗?
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<int>> feeds;
void foo()
{
find(feeds.begin(), feeds.end(), feeds[0][0]);
}
最佳答案
您正在尝试将int与 vector 进行比较。
行feeds.erase(find(feeds.begin(), feeds.end(), feeds[l][k]));
具有两个 vector 迭代器(feeds.begin()
和feeds.end()
),但是feeds[l][k]
指的是特定的 vector 位置而不是 vector 。 feeds[l]
引用 vector ,应改为使用。
但是,当您已经知道要擦除的 vector (find
)时,为什么需要feeds[l]
。我建议您检查一下逻辑,然后再去那里。