二进制'==';:未找到向量C+的运算符错误+; < >我在VS 2017中编译我的C++程序时,我得到一个编译错误,称为二进制'==':没有找到操作符,它使用了左手类型的操作数 STD::vector < /代码> (或没有可接受的转换)。 这是我第一次研究二维向量,我不确定这是否是原因之一。我的代码如下。有人能帮我找到为什么会这样吗 #include <vector> #include <algorithm> using namespace std; vector<vector<int>> feeds; void foo() { find(feeds.begin(), feeds.end(), feeds[0][0]); } #包括 #包括 使用名称空间std; 矢量饲料; void foo() { 查找(feed.begin()、feed.end()、feed[0][0]); }
您正在尝试将int与向量进行比较 行二进制'==';:未找到向量C+的运算符错误+; < >我在VS 2017中编译我的C++程序时,我得到一个编译错误,称为二进制'==':没有找到操作符,它使用了左手类型的操作数 STD::vector < /代码> (或没有可接受的转换)。 这是我第一次研究二维向量,我不确定这是否是原因之一。我的代码如下。有人能帮我找到为什么会这样吗 #include <vector> #include <algorithm> using namespace std; vector<vector<int>> feeds; void foo() { find(feeds.begin(), feeds.end(), feeds[0][0]); } #包括 #包括 使用名称空间std; 矢量饲料; void foo() { 查找(feed.begin()、feed.end()、feed[0][0]); },c++,vector,compiler-errors,stdvector,C++,Vector,Compiler Errors,Stdvector,您正在尝试将int与向量进行比较 行feed.erase(查找(feed.begin()、feed.end()、feed[l][k])有两个向量迭代器(feeds.begin()和feeds.end()),但feeds[l][k]指的是特定的向量位置,而不是向量feed[l]指的是向量,应该使用 但是,既然已经知道要删除哪个向量(feeds[l]),为什么还需要find。我建议你检查一下你的逻辑,然后从那里开始 我编辑了错误语句,我最初放了括号,但这使部分错误消息消失,我已将完整的错误消息放回。
feed.erase(查找(feed.begin()、feed.end()、feed[l][k])
有两个向量迭代器(feeds.begin()
和feeds.end()
),但feeds[l][k]
指的是特定的向量位置,而不是向量feed[l]
指的是向量,应该使用
但是,既然已经知道要删除哪个向量(
feeds[l]
),为什么还需要find
。我建议你检查一下你的逻辑,然后从那里开始 我编辑了错误语句,我最初放了括号,但这使部分错误消息消失,我已将完整的错误消息放回。哪一行导致了错误?@rsjaffe this onefeeds.erase(查找(feeds.begin()、feeds.end()、feeds[l][k])代码>实时:试图找到向量的int
向量,因此比较失败,因为将int
与向量进行比较是没有意义的。我不知道这一点,因为VS向我指出了xutility,我很难理解如何解释它。这就是为什么我发布了这个问题:在查找错误位置时获得一些帮助。feed[l][k]
是一个整数。在向量向量中找不到整数。