[转载]list用法

简介:

原文链接:http://www.cppblog.com/Lee7/archive/2008/04/14/47036.aspx

#include <iostream> 
None.gif#include <list> 
None.gif#include <numeric> 
None.gif#include <algorithm> 
None.gif
None.gifusing namespace std; 
None.gif
None.gif//创建一个list容器的实例LISTINT 
None.gif
typedef list<int> LISTINT; 
None.gif
None.gif//创建一个list容器的实例LISTCHAR 
None.gif
typedef list<int> LISTCHAR; 
None.gif
None.gifvoid main(void
ExpandedBlockStart.gif
InBlock.gif    //-------------------------- 
InBlock.gif    
//用list容器处理整型数据 
InBlock.gif    
//-------------------------- 
InBlock.gif    
//用LISTINT创建一个名为listOne的list对象 
InBlock.gif
    LISTINT listOne; 
InBlock.gif    //声明i为迭代器 
InBlock.gif
    LISTINT::iterator i; 
InBlock.gif    
InBlock.gif    //从前面向listOne容器中添加数据 
InBlock.gif
    listOne.push_front (2); 
InBlock.gif    listOne.push_front (1); 
InBlock.gif    
InBlock.gif    //从后面向listOne容器中添加数据 
InBlock.gif
    listOne.push_back (3); 
InBlock.gif    listOne.push_back (4); 
InBlock.gif    
InBlock.gif    //从前向后显示listOne中的数据 
InBlock.gif
    cout<<"listOne.begin()--- listOne.end():"<<endl; 
InBlock.gif    for (i = listOne.begin(); i != listOne.end(); ++i) 
InBlock.gif        cout << *i << " "; 
InBlock.gif    cout << endl; 
InBlock.gif    
InBlock.gif    //从后向后显示listOne中的数据 
InBlock.gif
    LISTINT::reverse_iterator ir; 
InBlock.gif    cout<<"listOne.rbegin()---listOne.rend():"<<endl; 
ExpandedSubBlockStart.gif    for (ir =listOne.rbegin(); ir!=listOne.rend();ir++) 
InBlock.gif        cout << *ir << " "; 
ExpandedSubBlockEnd.gif    }
 
InBlock.gif    cout << endl; 
InBlock.gif    
InBlock.gif    //使用STL的accumulate(累加)算法 
InBlock.gif
    int result = accumulate(listOne.begin(), listOne.end(),0); 
InBlock.gif    cout<<"Sum="<<result<<endl; 
InBlock.gif    cout<<"------------------"<<endl; 
InBlock.gif    
InBlock.gif    //-------------------------- 
InBlock.gif    
//用list容器处理字符型数据 
InBlock.gif    
//-------------------------- 
InBlock.gif    
InBlock.gif    
//用LISTCHAR创建一个名为listOne的list对象 
InBlock.gif
    LISTCHAR listTwo; 
InBlock.gif    //声明i为迭代器 
InBlock.gif
    LISTCHAR::iterator j; 
InBlock.gif    
InBlock.gif    //从前面向listTwo容器中添加数据 
InBlock.gif
    listTwo.push_front ('A'); 
InBlock.gif    listTwo.push_front ('B'); 
InBlock.gif    
InBlock.gif    //从后面向listTwo容器中添加数据 
InBlock.gif
    listTwo.push_back ('x'); 
InBlock.gif    listTwo.push_back ('y'); 
InBlock.gif    
InBlock.gif    //从前向后显示listTwo中的数据 
InBlock.gif
    cout<<"listTwo.begin()---listTwo.end():"<<endl; 
InBlock.gif    for (j = listTwo.begin(); j != listTwo.end(); ++j) 
InBlock.gif        cout << char(*j) << " "; 
InBlock.gif    cout << endl; 
InBlock.gif    
InBlock.gif    //使用STL的max_element算法求listTwo中的最大元素并显示 
InBlock.gif
    j=max_element(listTwo.begin(),listTwo.end()); 
InBlock.gif    cout << "The maximum element in listTwo is: "<<char(*j)<<endl; 
ExpandedBlockEnd.gif}
 
None.gif
None.gif#include <iostream> 
None.gif#include <list> 
None.gif
None.gifusing namespace std; 
None.giftypedef list<int> INTLIST; 
None.gif
None.gif//从前向后显示list队列的全部元素 
None.gif
void put_list(INTLIST list, char *name) 
ExpandedBlockStart.gif
InBlock.gif    INTLIST::iterator plist; 
InBlock.gif    
InBlock.gif    cout << "The contents of " << name << " : "; 
InBlock.gif    for(plist = list.begin(); plist != list.end(); plist++) 
InBlock.gif        cout << *plist << " "; 
InBlock.gif    cout<<endl; 
ExpandedBlockEnd.gif}
 
None.gif
None.gif//测试list容器的功能 
None.gif
void main(void
ExpandedBlockStart.gif
InBlock.gif    //list1对象初始为空 
InBlock.gif
    INTLIST list1; 
InBlock.gif    //list2对象最初有10个值为6的元素 
InBlock.gif
    INTLIST list2(10,6); 
InBlock.gif    //list3对象最初有3个值为6的元素 
InBlock.gif
    INTLIST list3(list2.begin(),--list2.end()); 
InBlock.gif    
InBlock.gif    //声明一个名为i的双向迭代器 
InBlock.gif
    INTLIST::iterator i; 
InBlock.gif    
InBlock.gif    //从前向后显示各list对象的元素 
InBlock.gif
    put_list(list1,"list1"); 
InBlock.gif    put_list(list2,"list2"); 
InBlock.gif    put_list(list3,"list3"); 
InBlock.gif    
InBlock.gif    //从list1序列后面添加两个元素 
InBlock.gif
    list1.push_back(2); 
InBlock.gif    list1.push_back(4); 
InBlock.gif    cout<<"list1.push_back(2) and list1.push_back(4):"<<endl; 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    
InBlock.gif    //从list1序列前面添加两个元素 
InBlock.gif
    list1.push_front(5); 
InBlock.gif    list1.push_front(7); 
InBlock.gif    cout<<"list1.push_front(5) and list1.push_front(7):"<<endl; 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    
InBlock.gif    //在list1序列中间插入数据 
InBlock.gif
    list1.insert(++list1.begin(),3,9); 
InBlock.gif    cout<<"list1.insert(list1.begin()+1,3,9):"<<endl; 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    
InBlock.gif    //测试引用类函数 
InBlock.gif
    cout<<"list1.front()="<<list1.front()<<endl; 
InBlock.gif    cout<<"list1.back()="<<list1.back()<<endl; 
InBlock.gif    
InBlock.gif    //从list1序列的前后各移去一个元素 
InBlock.gif
    list1.pop_front(); 
InBlock.gif    list1.pop_back(); 
InBlock.gif    cout<<"list1.pop_front() and list1.pop_back():"<<endl; 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    
InBlock.gif    //清除list1中的第2个元素 
InBlock.gif
    list1.erase(++list1.begin()); 
InBlock.gif    cout<<"list1.erase(++list1.begin()):"<<endl; 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    
InBlock.gif    //对list2赋值并显示 
InBlock.gif
    list2.assign(8,1); 
InBlock.gif    cout<<"list2.assign(8,1):"<<endl; 
InBlock.gif    put_list(list2,"list2"); 
InBlock.gif    
InBlock.gif    //显示序列的状态信息 
InBlock.gif
    cout<<"list1.max_size(): "<<list1.max_size()<<endl; 
InBlock.gif    cout<<"list1.size(): "<<list1.size()<<endl; 
InBlock.gif    cout<<"list1.empty(): "<<list1.empty()<<endl; 
InBlock.gif    
InBlock.gif    //list序列容器的运算 
InBlock.gif
    put_list(list1,"list1"); 
InBlock.gif    put_list(list3,"list3"); 
InBlock.gif    cout<<"list1>list3: "<<(list1>list3)<<endl; 
InBlock.gif    cout<<"list1<list3: "<<(list1<list3)<<endl; 
InBlock.gif    
InBlock.gif    //对list1容器排序 
InBlock.gif
    list1.sort(); 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    
InBlock.gif    //结合处理 
InBlock.gif
    list1.splice(++list1.begin(), list3); 
InBlock.gif    put_list(list1,"list1"); 
InBlock.gif    put_list(list3,"list3"); 
ExpandedBlockEnd.gif}
 








本文转自五岳博客园博客,原文链接:http://www.cnblogs.com/wuyuegb2312/articles/2215431.html,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
安全 C#
C# List基本用法
C# List基本用法
|
9月前
|
前端开发
前端项目实战壹佰零贰react-admin+material ui-踩坑-List的用法之pagination
前端项目实战壹佰零贰react-admin+material ui-踩坑-List的用法之pagination
33 0
|
9月前
|
前端开发
前端项目实战玖拾伍react-admin+material ui-踩坑-List的用法之disableSyncWithLocation查询字符串同步
前端项目实战玖拾伍react-admin+material ui-踩坑-List的用法之disableSyncWithLocation查询字符串同步
44 0
|
9月前
|
前端开发
前端项目实战玖拾肆react-admin+material ui-踩坑-List的用法之disableAuthentication设置验证
前端项目实战玖拾肆react-admin+material ui-踩坑-List的用法之disableAuthentication设置验证
45 0
|
9月前
|
前端开发
前端项目实战玖拾叁react-admin+material ui-踩坑-List的用法之debounce设置显示时间
前端项目实战玖拾叁react-admin+material ui-踩坑-List的用法之debounce设置显示时间
45 0
|
9月前
|
前端开发
前端项目实战壹佰零壹react-admin+material ui-踩坑-List的用法之hasCreate
前端项目实战壹佰零壹react-admin+material ui-踩坑-List的用法之hasCreate
31 0
|
4月前
|
Java
java8 foreach用法list转map、map转list
java8 foreach用法list转map、map转list
|
5月前
|
存储 C++ 容器
【STL】:list用法详解
【STL】:list用法详解
35 0
|
5月前
|
存储 C++ 容器
STL中list的基本用法以及模拟实现
STL中list的基本用法以及模拟实现
52 0
|
7月前
|
Java
【Java用法】java 8两个List集合取交集、并集、差集、去重并集
【Java用法】java 8两个List集合取交集、并集、差集、去重并集
200 0