list容器
2016-05-28 22:01
155 查看
list使用一个双向链表来管理元素。
任何位置上插入元素删除元素都很快。
插入和删除操作不会造成指向其他元素的pointers、references、iterators失效。
list对于异常的处理方式是:要么成功,要么什么都不发生。
不提供容量、空间重新分配等操作函数。
list的功能
list不支持随机存取。所及既不提供下表操作符,也不提供at()函数。任何位置上插入元素删除元素都很快。
插入和删除操作不会造成指向其他元素的pointers、references、iterators失效。
list对于异常的处理方式是:要么成功,要么什么都不发生。
不提供容量、空间重新分配等操作函数。
元素的插入
#include <iostream> #include <list> using namespace std; void printlistcontents(const list<int>& listinput) { list<int>::const_iterator iter; for (iter = listinput.begin(); iter != listinput.end(); ++iter) cout << *iter << endl; } int main() { list<int> a; list<int> b; list<int>::iterator iter; b.push_back(100); b.push_back(200); b.push_back(300); b.push_back(400); b.push_back(500); printlistcontents(b); cout << endl; a.push_front(4); a.push_front(3); a.push_front(2); a.push_front(1); a.push_front(5); iter = a.begin(); ++iter; a.insert(a.begin(), 10); ++iter; a.insert(a.end(), 4, 20); a.insert(a.begin(), b.begin(), b.end()); a.insert(a.begin(),++ b.begin(), --b.end()); printlistcontents(a); return 0; }
元素的删除
#include <iostream> #include <list> using namespace std; void PrintListContents(const list<int>& listInput) { cout << "{"; list<int>::const_iterator iter; for (iter = listInput.begin(); iter != listInput.end(); ++iter) cout << *iter << " "; cout << "}" << endl; cout << endl; } int main() { list<int> a; a.push_front(4); a.push_back(3); PrintListContents(a); a.reverse(); PrintListContents(a); list<int>::iterator iter; iter = a.insert(a.begin(), 2); a.push_front(1); a.push_back(0); PrintListContents(a); a.erase(a.begin(),iter); PrintListContents(a); a.erase(iter, a.end()); PrintListContents(a); return 0; }
相关文章推荐
- 实参和形参都是指针。。
- 嵌入式linux C语言(一)——位运算的使用
- Android后台云端服务Bmob导入大坑
- java多线程---线程的创建方式
- 图像的高斯滤波
- [笔记]RHEL6.4使用本地ISO镜像做yum源
- XenServer架构之高可用性概述
- thirft 生成各种语言远程调用接口
- PHP session
- PAT组个最小数,时间三元组,旧键盘,身份验证再来水一波
- 约束极值、SVM的总结
- 使用递归和数组求斐波那契数列
- 实习第八天:三款炫酷的动画推荐
- Web应用多账号系统设计及微信扫码登录实现
- GitHub 基础学习
- 求素数
- 将博客搬至CSDN
- Linux(CentOS6.5_X86.64)编译libjpeg出现“checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized”的解决
- 面向对象的Javascript(5):继承
- 实习第八天:在SurfaceView中照样使用Android—Tween Animation!