C++顺序容器之list初探
C++顺序容器之list初探
双向链表,支持双向顺序访问。在list中任何位置进行插入和删除速度都很快。
list不支持随机访问,为了访问一个元素,必须遍历整个容器。
#include<iostream>
#include<list>
#include<algorithm>
using namespace std;
void printList(const list<int>& a);
void printList(const list<int>& a)
{
// 注意形参中是const list,所以下面也需要用const_iterator
// 否则distance无法使用
list<int>::const_iterator iter;
for (iter = a.begin(); iter != a.end(); ++iter)
{
size_t index = distance(a.begin(), iter);
cout << "a[" << index << "] = " << *iter << endl;
}
cout << endl;
}
int main()
{
list<int> a;
// push_front、push_back插入数据
a.push_front(4);
a.push_front(3);
a.push_front(2);
a.push_front(1);
a.push_back(50);
printList(a);
// insert插入数据
list<int>::iterator iter;
iter = a.begin();
a.insert(iter, 0);
a.insert(++iter, 10);
a.insert(++iter, 4, 20); // 插入4个20
printList(a);
// sort排序
cout << "sort排序" << endl;
a.sort();
printList(a);
// reverse逆序
cout << "reverse逆序" << endl;
a.reverse();
printList(a);
// erase删除指定元素
cout << "erase删除指定元素" << endl;
a.erase(iter);
printList(a);
// erase删除指定区间的元素
cout << "erase删除指定区间元素" << endl;
a.erase(++a.begin(), --a.end());
printList(a);
system("pause");
return 0;
}
C++顺序容器之list初探的更多相关文章
- C++顺序容器之deque初探
C++顺序容器之deque初探 deque是双端队列,与vector非常相似,是顺序容器,不同的是,deque可以在数组开头和末尾插入和删除数据.支持快速随机访问. #include<iostr ...
- 顺序容器之vector
最近因为需要,在看C++ primer,哇,感觉这本书真不错,讲的细而且到位,而且大量的练习题,不愧为C++学习的经典书籍.今天看了顺序容器方面的内容,现在汇报一下: 一.什么是vector vect ...
- 【转】Java并发编程:并发容器之ConcurrentHashMap
JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了 ...
- [知识点]C++中STL容器之map
UPDATE(20190416):写完vector和set之后,发现不少内容全部引导到map上了……于是进行了一定的描述补充与更正. 零.STL目录 1.容器之map 2.容器之vector 3.容器 ...
- Java并发编程:并发容器之CopyOnWriteArrayList(转载)
Java并发编程:并发容器之CopyOnWriteArrayList(转载) 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW ...
- Java并发编程:并发容器之ConcurrentHashMap(转载)
Java并发编程:并发容器之ConcurrentHashMap(转载) 下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concu ...
- Java并发编程:并发容器之ConcurrentHashMap
转载: Java并发编程:并发容器之ConcurrentHashMap JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为同步容器将所有对容器状态的 ...
- Java并发编程:并发容器之CopyOnWriteArrayList
转载: Java并发编程:并发容器之CopyOnWriteArrayList Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个 ...
- Java 容器之Hashset 详解
Java 容器之Hashset 详解.http://blog.csdn.net/nvd11/article/details/27716511
随机推荐
- 杂谈3.py
bin() --------十转二 hex()------- 十转十六 oct()-------十转八 import math math.floor(数值)返回小于等于数值的整数 math.trunc ...
- Phpstorm 与 服务器 同步 代码
链接:(自己领悟就好了) Phpstorm同步代码
- 代码:CSS——reset.css
http://www.cnblogs.com/qq21270/p/5577856.html 图片列表 A链接标签: /* 链接样式.文字颜色 */ a{color:#666;text-decorati ...
- 用ActiveX 创建自己的comboBox 控件(二)
3.0 添加事件 3.1 添加OnSelChange 事件 当用户选中列表项的时候触发该事件.(不只是选择改变时触发,本次选择和上次相同时也触发): 添加完成后,在ActivexcomboBox.id ...
- ReactiveX 学习笔记(23)RxCpp
RxCpp RxCpp 是 ReactiveX 的 C++ 语言实现. 下载 RxCpp $ git clone --recursive https://github.com/ReactiveX/Rx ...
- linux查看磁盘大小df命令
df -h https://www.cnblogs.com/sparkdev/p/9273094.html
- angular中使用ckplayer播放器
原文地址:https://www.cnblogs.com/jying/p/9519557.html ,转载请说明出处. ckplayer官网:http://www.ckplayer.com 使用ckp ...
- Javascript面试题收集
第一部分“ 来源: http://bbs.miaov.com/forum.php?mod=viewthread&tid=6974 1.var a = b = 1; ——这样定义变量的隐患 fu ...
- Kb和KB的区别
- linux上安装字体
安装字体命令: yum install wqy-microhei-fonts wqy-zenhei-fonts 安装完字体的存放目录:/usr/share/fonts 默认会在fonts目录下 ...