从C++列表中删除一次

Removing once from C++ List

本文关键字:一次 删除 C++ 列表      更新时间:2023-10-16

我有以下示例:

// remove from list
#include <iostream>
#include <list>
using namespace std;
int main ()
{
  int myints[]= {17,89,89,7,14};
  list<int> mylist (myints,myints+5);
  mylist.remove(89);
  cout << "mylist contains:";
  for (list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
        cout << " " << *it;
  cout << endl;
  return 0;
}

结果是:

17, 7, 14

这样做的问题在于,它删除了89的两个实例。有什么简单的方法可以删除89的一个实例吗?

不,没有。你可以这样做:

mylist.erase(find(mylist.begin(), mylist.end(), 89));