#include <iostream>
#include <list>
using namespace std;
// a predicate implemented as a function:
bool single_digit (const int& value) { return (value<10); }
// a predicate implemented as a class:
class is_odd
{
public:
bool operator() (const int& value) {return (value%2)==1; }
};
int main ()
{
int myints[]= {15,36,7,17,20,39,4,1};
list<int> mylist (myints,myints+8); // 15 36 7 17 20 39 4 1
mylist.remove_if (single_digit); // 15 36 17 20 39
mylist.remove_if (is_odd()); // 36 20
cout << "mylist contains:";
for (list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
cout << " " << *it;
cout << endl;
system("pause");
return 0;
}
remove函数中指定要移除哪些值的判定函数,该函数返回值为bool类型,用于指定哪个值是要删除的。二、list类sort函数的使用
#include <iostream>
#include <list>
using namespace std;
bool LargeToSmall(const int &left,const int &right)
{
return (right < left);
}
int main ()
{
int a[5]={3,1,9,2,6};
list<int> lista(a,a+5);
//注意是LargeToSmall,而不是LargeToSmall( )
lista.sort(LargeToSmall);
for (auto i:lista)
{
cout<<i<<" ";
}
cout<<endl;
system("pause");
return 0;
}