我的bool方法应该是检查角色" - "在作为私人对象保存的多维向量中#12;数独_"。如果它找到" - "它返回true。否则返回false。它非常简单,所以我不知道为什么我会收到这个错误:
"错误C2678:二进制' ==' :找不到哪个运算符采用类型为' std :: vector>'的左手操作数。 (或者没有可接受的转换)"
这是我的代码:
bool Grid::checkiffull(){
string selement = "-";
if (find(sudoku_.begin(), sudoku_.end(), selement) != sudoku_.end())
return true;
else
return false;
}
编辑:
这里是私有对象定义:
vector<vector<string>> sudoku_;
错误显然出现在&#34; xutility&#34;文件,第3026行:
template<class _InIt,
class _Ty> inline
_InIt _Find(_InIt _First, _InIt _Last, const _Ty& _Val, false_type)
{ // find first matching _Val
for (; _First != _Last; ++_First)
if (*_First == _Val)
break;
return (_First);
}
答案 0 :(得分:2)
问题是你的变量是一个字符串向量的向量:
vector<vector<string>> sudoku_;
当您调用find时,您正在搜索string
,因此您应该使用简单的vector<string>
来调用它,而不是使用嵌套数据类型。
因此,您必须先在“外部”向量中找到正确的项目,然后才能在“内部”向量中使用您的代码。