|
发表于 2012-9-12 19:00:15
|
显示全部楼层
- #include <list>
- #include <iostream>
- #include <algorithm>
- #include <iterator>
- #include <string>
- using namespace std;
- void make_list( list<int>& lst );
- void show( const string msg, const list<int> lst );
- void remove_odds( list<int>& lst );
- int main() {
- list<int> lst;
- make_list( lst );
- show("before erase", lst);
- remove_odds( lst );
- show("after erase", lst);
- }
- void show( const string msg, const list<int> lst ) {
- cout << msg <<":" <<endl<<"[ ";
- copy( lst.begin(), lst.end(), ostream_iterator<int>(cout," ") );
- cout << "]" << endl;
- }
- void remove_odds( list<int>& lst ) {
- list<int>::iterator it = lst.begin();
- int i = 0;
- for( ; it!=lst.end(); ++i )
- if( i%2 )
- it = lst.erase(it);
- else
- ++it;
- }
- void make_list( list<int>& lst ) {
- int ia[]={1,23,3,1,4,12,41,24,123,1};
- copy( ia, ia+sizeof(ia)/sizeof(ia[0]),
- back_inserter(lst) );
- }
复制代码 |
|