简单地画了下 LinkedList 的继承关系,如下图。只是画了关注的部分,并不是完整的关系图。本博文涉及的是 Queue, Deque, LinkedList 的源代码阅读笔记。关于 List 接口的笔记,可以参考上一篇博文 List / ArrayList - 源代码学习笔记 Queue 1. ...
分类:
编程语言 时间:
2016-07-09 17:42:35
阅读次数:
159
这一章介绍顺序容器,在之前的第三章中,了解到的vector就属于顺序容器的一种。 一个容器就是一些特定类型对象的集合。 除了vector,还有哪些顺序容器? vector: 大小可变,随机访问的速度很快,但是在尾部之外的部分插入或删除元素可能会很慢。 deque : 随机访问的速度很快,在头和尾插入 ...
分类:
编程语言 时间:
2016-07-08 01:35:17
阅读次数:
227
stl提供了三个最基本的容器:vector,list,deque。 vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此 它能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间 进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不 ...
分类:
其他好文 时间:
2016-07-07 14:22:54
阅读次数:
146
说明: 1.list由双向链表实现的,不支持[]和at()函数,有较快的插入和删除函数,同时提供了sort,remove,remove_if ,reverse,merge,splice,unique等独有的函数 2.deque也是动态数组实现的,和vector相比可以push_front,push_ ...
分类:
其他好文 时间:
2016-06-30 23:25:45
阅读次数:
225
摘自《Effective STL》第9条 对于连续内存的容器(vector、deque 或 string),那么最好的办法是使用 erase-remove 的习惯用法: 对于 list,使用 list 的成员函数 remove 更加有效 对于关联容器(set、multiset、map、multima ...
分类:
其他好文 时间:
2016-06-23 14:27:20
阅读次数:
186
STL实现的底层数据结构简介 C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问 ...
分类:
其他好文 时间:
2016-06-20 15:47:40
阅读次数:
134
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ DLJobLogTableViewCell *cell = [tableView deque ...
分类:
其他好文 时间:
2016-06-15 12:17:33
阅读次数:
127
C++中的STL(Standard Template Library)用起来挺方便的,这里我们来做一下总结。 一、set set是STL中一种标准关联容器 (vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用 ...
分类:
编程语言 时间:
2016-06-13 01:05:58
阅读次数:
178
Java源码之LinkedList
转载请注意出处:
一、LinkedList概述
本文采用jdk1.8进行分析。
LinkedList实现了List,Deque接口的双向链表,实现了链表的所有可选操作,并且可有null值。查找某个值的时候必须从头到尾的遍历链表。它是非线程安全的,当多个线程结构化修改同一链表时需要加上同步处理。(程结构化修改包括:添加、...
分类:
编程语言 时间:
2016-06-12 02:30:00
阅读次数:
255
Deque with iterator实现细节一、deque的中控器
deque是连续空间(至少逻辑上看来如此),连续线性空间总令我们联想到array或vector。array无法成长,vector虽可成长,却只能向尾端成长,而且其所谓的成长原是个假象,事实上是(1)另觅更大空间;(2)将原数据复制过去;(3)释放原空间三部曲。如果不是vector每次配置新空间时都有留下一些余裕,其成...
分类:
编程语言 时间:
2016-06-07 11:09:56
阅读次数:
239