list操作整理

来源:互联网 发布:es6数组去重的方法 编辑:程序博客网 时间:2024/05/19 12:41

list自己定义了sort(),unique(),可以不用algorithm的sort和unique了。

对比请看我的博客《c++容器算法》

粘接,排序,归并

void splice(iterator pos,list& x);

void splice(iterator pos,list& x,iterator p);

void splice(iterator pos,list& x,iterator first,iterator last ;

void merge(list& );

template<typename Cmp>

void merge(list&,Cmp);

void sort();

template<typename Cmp>

void sort(Cmp);

前端操作:

reference front();

const_reference front() const;

void push_front(const T&);

void pop_front();

其他操作:

void remove(const T& val);

template<typename T>

void remove_if(T t);

void unique();

template<typename T>

void unique(T t)

void reverse();

 

代码参考:

#include<iostream>
#include<string>
#include<list>
using namespace std;
int main(){
 list<string>l;
 l.push_back("d");
 l.push_back("e");
 l.push_back("c");
 l.push_back("a");
 l.push_back("b");
 l.push_back("c");
 l.push_back("d");
 l.push_back("f");
 for(list<string>::iterator iter=l.begin();iter!=l.end();++iter){
  cout<<*iter<<" ";
 }
 l.sort();
 cout<<endl;
 for(list<string>::iterator it=l.begin();it!=l.end();++it){
  cout<<*it<<" ";
 }
 cout<<endl;
 l.unique();
 for(list<string>::iterator ite=l.begin();ite!=l.end();++ite){
  cout<<*ite<<" ";
 }
 cout<<endl;
 system("pause");
 return 0;
}


#include<iostream>
#include<string>
#include<list>
using namespace std;
int main(){
 list<string>l;
 l.push_back("d");
 l.push_back("e");
 l.push_back("c");
 l.push_back("a");
 l.push_back("b");
 l.push_back("c");
 l.push_back("d");
 l.push_back("f");
 list<string>ll;
 ll.push_back("1");
 ll.push_back("3");
 ll.push_back("2");
 ll.push_back("4");
 ll.push_back("1");
 ll.push_back("6");
 ll.push_back("5");
 ll.push_back("2");
 l.sort();
 ll.sort();
 l.merge(ll);

 for(list<string>::iterator iter=l.begin();iter!=l.end();++iter){
  cout<<*iter<<" ";
 }
 cout<<endl;
 for(list<string>::iterator ite=ll.begin();ite!=ll.end();++ite){//
为空
  cout<<*ite<<" ";
 }
 cout<<endl;
 system("pause");
 return 0;
}

 

 

 
#include<iostream>
#include<list>
#include<string>
using namespace std;
int main(){
 list<string>l;
 l.push_back("1");
 l.push_back("2");
 l.push_back("3");
 list<string>::iterator iter=l.erase(l.begin());
 for(list<string>::iterator it=l.begin();it!=l.end();++it){
  cout<<*it<<" "; 
 }
 cout<<endl;
 l.remove("2");
 for(list<string>::iterator iet=l.begin();iet!=l.end();++iet){
  cout<<*iet<<" "; 
 }
 cout<<endl;
 system("pause");
 return 0;
}

 

 
较全的list函数运用
#include<iostream>#include<list>#include<algorithm>using namespace std;void printlist(const list<int>& l1,const list<int>& l2){cout<<"list1:";copy(l1.begin(),l1.end(),ostream_iterator<int>(cout," "));cout<<endl;cout<<"list2:";copy(l2.begin(),l2.end(),ostream_iterator<int>(cout," "));cout<<endl;}int main(){list<int>list1,list2;for(int i=0;i<6;++i){list1.push_back(i);list2.push_front(i);}printlist(list1,list2);list2.splice(find(list2.begin(),list2.end(),3),list1);printlist(list1,list2);list2.splice(list2.end(),list2,list2.begin());printlist(list1,list2);list2.sort();list1=list2;list2.unique();printlist(list1,list2);list1.merge(list2);printlist(list1,list2);system("pause");return 0;}

原创粉丝点击