0

次の例があります。

// 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の1つのインスタンスを削除する簡単な方法はありますか?

4

1 に答える 1

1

いいえ、ありません。ただし、次のことを行う場合があります。

mylist.erase(find(mylist.begin(), mylist.end(), 89));
于 2012-09-03T14:14:15.913 に答える