关于list的一个例子

来源:互联网 发布:apache 监控 插件 编辑:程序博客网 时间:2024/04/24 21:37
#include <iostream>
#include <list>
#include <algorithm> 
#include <iterator> 

using namespace std; 

int main () 
{
//assign() use the assign() fill the list
int ary[]={1,2,3,4,5}; 
list<int> ltest; 
ltest.assign(3,100);
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout,"--"));
cout << endl;
cout<<endl;
ltest.assign(ary,ary+5); 
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout,"--")); 
cout << endl;


//use the size() and max_size()
cout<<"the list size is: "<<ltest.size()<<"  the max_size is: "<<ltest.max_size()<<endl;
cout <<endl;


//we can use the resize() change the list size
list<int> l(10);
cout<<"the size is: "<<l.size()<<endl;
l.resize(100);
cout<<"the change size is: "<<l.size()<<endl;
cout<<endl;


//back() braek the last element
cout<<"the last element is: "<<ltest.back()<<endl;
cout<<endl;


//front() break the first element
cout<<"the first element is: "<<ltest.front()<<endl;
cout<<endl;


//begin() break the first iterator be careful is a iterator,not is emelemt
//Define an iterator
list<int>::iterator It=ltest.begin();
cout<<"the first element is: "<<(*It)<<endl; 
cout<<endl;


//end() break the end iterator
while(It!=ltest.end())
cout<<"the list is :"<<(*(It++))<<endl;
cout<<endl;


//use the clear() and empty() 
int i;
for(i=0;i<2;++i)
{
   if(i==1)
ltest.clear();
   if(ltest.empty())
      cout<<"the list is null!"<<endl;
   else
      cout<<"clear success!"<<endl;
}
cout<<endl;
ltest.assign(ary,ary+5);


//pop_back() and pop_front() is delete the last and the first element
ltest.pop_back();
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;


ltest.pop_front();
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout,"  "));
cout<<endl;
cout<<endl;


//push_back() and push_front() is insert a element in the last and first
ltest.push_back(6);
ltest.push_front(10);
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;
cout<<endl;

//insert() can insert element in the list
//insert(p,t)
//the first usage is insert a t befroe the  iterator
ltest.insert(ltest.begin(),8);
cout<<"ltest.insert(ltest.begin(),8): ";
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;


//insert(p,n,t)
//the second usage is insert some element t before p 
ltest.insert(ltest.end(),3,8);
cout<<"ltest.insert(ltest.end(),3,8): ";
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;

//insert(p,b,e)
//if I bulit a new array ,it's have some value ,I want take a part value insert the list
//we can user the insert(p,b,e),b is the begin,e is the end
int a[]={11,12,13,14,15,16,17};
ltest.insert(ltest.end(),a+2,a+5);
cout<<"ltest.insert(ltest.end(),a+2,a+5) :";
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;

ltest.assign(ary,ary+5);

//rbegin() can return a reverse iterator pointer to the first element
//rend() can return a reverser iterator pointer to the last element
list<int>::reverse_iterator Is = ltest.rbegin();
while(Is!=ltest.rend())
{
   cout<<*(Is++)<<" ";
}
cout<<endl;
cout<<endl;

//now we use the reverse() change reverse the element
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;
ltest.reverse();
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;
cout<<endl;

int arr2[]={3,5,4,1,2};
ltest.assign(arr2,arr2+5);
//erase() can delete a element in the list,but we must know the iterator
It=find(ltest.begin(),ltest.end(),5);//can find the 5 int the list
ltest.erase(It);
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;
ltest.erase(ltest.begin());
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;
cout<<endl;

//remove can direct the element if it in the list
//if the value not in the list ,list unchange
ltest.assign(ary,ary+5);
ltest.remove(5);
copy(ltest.begin(),ltest.end(), ostream_iterator<int>(cout," "));
cout<<endl;
return 0; 

}


执行结果:

[tgomc@ems03 test]$ ./list 
100--100--100--


1--2--3--4--5--
the list size is: 5  the max_size is: 4294967295


the size is: 10
the change size is: 100


the last element is: 5


the first element is: 1


the first element is: 1


the list is :1
the list is :2
the list is :3
the list is :4
the list is :5


clear success!
the list is null!


1 2 3 4 
2  3  4  


10 2 3 4 6 


ltest.insert(ltest.begin(),8): 8 10 2 3 4 6 
ltest.insert(ltest.end(),3,8): 8 10 2 3 4 6 8 8 8 
ltest.insert(ltest.end(),a+2,a+5) :8 10 2 3 4 6 8 8 8 13 14 15 
5 4 3 2 1 


1 2 3 4 5 
5 4 3 2 1 


3 4 1 2 
4 1 2 


1 2 3 4


原创粉丝点击