我对这段代码有疑问:
for(int i=n;i>0;i--)
for(int j=0;j<i;j++)
if(docel[j]==docel[i])
docel.erase(j);
为什么我的程序无法编译?我也尝试过:
docel.erase(docel.at(j))
答案 0 :(得分:4)
erase
采用迭代器,而不是索引值。一个简单的解决方法是使用docel.erase(docel.begin() + j);
但是你的代码看起来有两个错误:
如果删除第(j)个元素,请注意不要增加j
:你会跳过值。
如果n
中的元素数量减少,您还需要调整docel
。