我创建了一个结构,其中包含有关变量的信息,即它们的名称和编号
struct var{
string name;
int value;
};
现在,我想使用迭代器来更新它,使用以下函数:
void updateVariable(vector<Variable>& vars,Variable& newVar){
vector<Variable>::iterator it = find(vars.begin(), vars.end(), newVar);
if(it == vars.end()){
vars.push_back(newVar);
}
else{
*it = newVar;
}
}
可以肯定的是,我得到的错误与调用 find() 一致。任何想法为什么我会收到错误?这是错误:
/usr/include/c++/4.6/bits/stl_algo.h:162:4: error: no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Variable*, _Container = std::vector<Variable>, __gnu_cxx::__normal_iterator<_Iterator, _Container>::reference = Variable&]() == __val’
更新:
感谢大家的快速帮助和明确的答案!