博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]list用法
阅读量:6892 次
发布时间:2019-06-27

本文共 3620 字,大约阅读时间需要 12 分钟。

原文链接:

#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,如需转载请自行联系原作者

你可能感兴趣的文章
智齿科技携手无忧我房 VR+AI新品亮相GTC
查看>>
中国已成全球七大重要出版市场之一 大数据提供新机遇
查看>>
法街头“种”下电子树 可提供WiFi、为手机充电
查看>>
《中国大数据企业评级白皮书》出炉
查看>>
联想否认锁住设备以及阻止用户安装Linux
查看>>
“任意云”再创佳绩 戴尔赢得CEIA最佳混合云方案提供商
查看>>
Facebook正式上线视频直播:APP充当电视直播间
查看>>
深圳将实现窄带物联网商用全覆盖 深入19大行业应用
查看>>
大数据也是一把双刃剑
查看>>
抢物联网商机 中国三大电信商掀战火
查看>>
应用领域寸土寸金 大数据成为新一代“网红”?
查看>>
IBM:罗睿兰反对特朗普退出气候协定 但会留在顾问团队
查看>>
黑客组织Anonymous希望McAfee担任特朗普的安全顾问
查看>>
提升API使用效率的五种好习惯
查看>>
网络电话走俏 手机用户多看中“音质”
查看>>
AT&T推出全国性LTE-M网络
查看>>
国产自主CPU/操作系统真正实力是这样!
查看>>
中国光伏企业反对美国设卡
查看>>
加快云计算与托管数据中心的整合
查看>>
中国大数据发展报告发布 贵州获多项全国第一
查看>>