void one_number_deletion(std::list<int> &tabela)
{
std::cout << "What value would u like to delete: " << std::endl;
int value, spr=0;
std::cin >> value;
std::list<int>::iterator itr = tabela.begin();
for (itr; itr!=tabela.end();)
{
if (*itr == value) //do not increment itr in the loop there
{
spr = 1;
//tabela.erase(itr); //the problem
}
else ++itr;
}
if (spr == 0) std::cout << "Wrong table value " << std::endl;
}
这个想法是,我希望用户在矢量/列表中键入10个值,然后让他选择他想删除的1个值。该代码仅显示该函数,该函数从主函数获取列表/向量。一切正常,直到我打开tabela.erase(itr),然后我收到错误,指出迭代器不兼容。我不知道该怎么做。