当我尝试执行此擦除功能以从我的向量中删除“2”时,我遇到了一个错误列表。我不确定问题出在哪里。帮助将不胜感激!
STRUCT MyInt
struct MyInt
{
friend ostream &operator<<(ostream &printout, const MyInt &Qn)
{
printout<< Qn.value << endl;
return printout;
}
int value;
MyInt (int value) : value (value) {}
};
结构我的东西
struct MyStuff
{
std::vector<MyInt> values;
MyStuff () : values ()
{ }
};
主要的
int main()
{
MyStuff mystuff1,mystuff2;
for (int x = 0; x < 5; ++x)
{
mystuff2.values.push_back (MyInt (x));
}
vector<MyInt>::iterator VITER;
mystuff2.values.push_back(10);
mystuff2.values.push_back(7);
//error points to the line below
mystuff2.values.erase(std::remove(mystuff2.values.begin(), mystuff2.values.end(), 2), mystuff2.values.end());
return 0;
}
错误信息
stl_algo.h:在函数 '_OutputIterator std::remove_copy(_InputInputIterator, _InputIterator, const_Tp&) [with_InputIterator = __gnu_cxx:__normal_iterator >>, OutputIterator = __ gnu_cxx::__normal iterator >>, Tp = int]'
运算符==' 不匹配
错误消息显示该特定行实际上违反了 stl_algo.h 的第 1267、1190、327、1263、208、212、216、220、228、232、236 行