STL基础系列之--list
来源:互联网 发布:淘宝平价女装 编辑:程序博客网 时间:2024/06/05 03:48
链表(list)双向链表容器不支持随机访问,访问链表元素需要指出从链表的某个端点开始,插入和删操作所花费的时间是固定的,和该元素的位置无关。
在任何位置插入和删除动作都很快,不像vector只在末尾进行操作。
STL list容器由于采用了双向迭代器,不支持随机访问,所以标准库的merge(), sort()等功能函数都不适用,list单独实现了merge(),sort()等函数。
//STL--list总结//STL list容器由于采用了双向迭代器,不支持随机访问,所以标准库的merge(), sort()等功能函数都不适用,list单独实现了merge(),sort()等函数。#include<iostream>#include<list>#include<algorithm>#include<cstdio>#include<ctime>#define MAXN 10using namespace std;void output(int n){cout<<n<<" ";}bool compare(int a,int b){return (a>b);}bool myFun(int n){return (n==9);}int main(){list<int> list1;cout<<"list1:"<<endl;int i; srand(time(NULL)); for (i = 0; i < MAXN; ++i) list1.push_back(rand()%100); cout<<"原始数字:";for_each(list1.begin(),list1.end(),output);cout<<endl;list1.sort(compare);//注意排序调用方式cout<<"降序排列:";for_each(list1.begin(),list1.end(),output);cout<<endl;list1.sort();//注意排序调用方式 cout<<"升序排列:";for_each(list1.begin(),list1.end(),output);cout<<endl;list<int> list2;cout<<"list2:"<<endl;list2.assign(list1.begin(),list1.end());cout<<"原始数字:";for_each(list2.begin(),list2.end(),output);cout<<endl;list2.push_back(101);//在list的末尾添加一个元素cout<<"加入元素后:";for(list<int>::iterator it=list2.begin();it!=list2.end();it++){cout<<*it<<" ";}cout<<endl;list1.swap(list2);cout<<"交换后list1:";for_each(list1.begin(),list1.end(),output);cout<<endl;cout<<"交换后list2:";for_each(list2.begin(),list2.end(),output);cout<<endl;//list2.clear();//清空链表//list2.push_front(100);//在list的头部添加一个元素list2.merge(list1);//必须是有序序列,不然vs2012出错,不能合并cout<<"list1,list2合并后:";for_each(list2.begin(),list2.end(),output);cout<<endl;cout<<"合并后list1:";for_each(list1.begin(),list1.end(),output);//合并后list1为空cout<<endl;list2.unique();cout<<"list2删除重复元素:";for_each(list2.begin(),list2.end(),output);cout<<endl;list2.insert(list2.begin(),2,9);//在指定位置插入两个元素cout<<"插入两个元素后:";for_each(list2.begin(),list2.end(),output);cout<<endl;list2.remove_if(myFun);//遍历一遍listcout<<"删除指定两个元素后:";for_each(list2.begin(),list2.end(),output);cout<<endl;system("pause");return 0;}
0 0
- STL基础系列之--list
- STL之list基础
- STL基础之list
- c++ 工程基础之STL系列 (二) list
- STL基础系列之--vector
- 【STL】List基础
- 【STL】list基础
- 【STL】list基础
- 【STL】list基础
- 【STL】list基础
- 【STL】list基础
- STL list基础
- 【STL】list基础
- 【STL】list基础
- 【STL】list基础
- STL学习系列之三——list序列容器
- STL系列之list的常见功能使用
- [STL基础]双向链表List之用法
- msdn之断点API
- oracle存储过程实现分页
- 用Javascript获取页面元素的位置
- pod repo update error
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
- STL基础系列之--list
- web组件(Servlet、JSP)的调用和如何实现数据传递
- 具备“十商”,你才能做好技术管理
- lua 如何输出树状结构的table?
- 百度面试题 :玻璃球 临界值
- Android平台下驱动的开发及测试框架概述(三)
- 15个令人震惊的HTML5实验
- POJ 2299 Ultra-QuickSort(树状数组水题)
- 堆(heap)实现