listintnlist(30);listint::iteratorpnlist=nlist.begin();advance(pnlisr,i);//迭代器前进i个元素,注意i是从0开始if(pnlisr!=nlist.end())//最后一个不能删除nlist.erase(pnlisr);//删除第i个元素其实advance这个辅助函数,对你的迭代器的复杂度是O(N),和使用++操作符步进i次在效率上没有什么区别,只是代码上方便一些。