ArrayList和Vector使用了数组的实现,可以认为ArrayList或者Vector封装了对内部数组的操作,比如向数组中添加,删除,插入新的元素或者数据的扩展和重定向。 LinkedList使用了循环双向链表数据结构。与基于数组ArrayList相比,这是两种截然不同的实现技术,这也决定了它 ...
分类:
其他好文 时间:
2016-05-11 22:05:51
阅读次数:
158
写了5个小时,C++面向对象的东西都不会写了。。。以后要多写C++少写python。。。关于读入字符串处理的那部分写得太挫就不放了。 #include "List.hpp" 1 #pragma once 2 #include <cstdio> 3 #include <cassert> 4 5 nam ...
分类:
其他好文 时间:
2016-05-09 21:58:46
阅读次数:
247
最近,我想通过redis的源码来学习redis。虽然平时工作中用得不多,不过对redis还是比较感兴趣的,毕竟它的性能是不错的。redis是一个开源的项目,我们可以通过源代码去了解redis。我后面会通过自己的学习,写一些关于redis源码的帖子。帖子的主要内容是分析代码设计,而并不会..
分类:
其他好文 时间:
2016-05-08 01:18:23
阅读次数:
241
题目大意: 给出n个数a[1..n],n<=262144,a[i]<=40,相邻且相同的数可以合并成一个并将值加1,问能获得的最大数是多少 用一个双向链表维护原数列,每个节点记录此节点对应的数值和数的个数,合并相邻且对应数值相同的节点 每次选一个数值最小的点处理,此时两侧的数都更大 若这个点只有一个 ...
分类:
其他好文 时间:
2016-05-07 16:37:37
阅读次数:
454
1.概述:
对于一个循环链表来说,其首节点和末节点被连接在一起。这种方式在单向和双向链表中皆可实现。要转换一个循环链表,可以选择开始于任意一个节点然后沿着列表的任一方向直到返回开始的节点。再来看另一种方法,循环链表可以被视为“无头无尾”。这种列表很利于节约数据存储缓存, 假定你在一个列表中有一个对象并且希望所有其他对象迭代在一个非特殊的排列下。
指向整个列表的指针可以被称作访问指针。
用单向链...
分类:
其他好文 时间:
2016-05-07 10:08:41
阅读次数:
86
1、单向链接
单向链表适用于只从一端单向访问的场合,这种场合一般来说:
(1)、删除时,只适合删除第一个元素;
(2)、添加时,只直接添加到最后一个元素的后面或者添加到第一个元素的前面;
(3)、属于单向迭代器,只能从一个方向走到头(只支持前进或后退,取决于实现),查找效率极差。不适合大量查询的场合。
这种典型的应用场合是各类缓冲池和栈的实现。
2、双向链表
...
分类:
其他好文 时间:
2016-05-07 10:02:40
阅读次数:
141
package java.util;
import java.util.function.Consumer;
/**
* List和Deque接口的双向链表实现,实现了所有可选接口,允许空值null
* 支持所有双向链表应该支持的操作,深入链表的操作都是从链表头遍历到链表尾
* 该实现不支持并发。多线程访问,至少一个线程修改列表结构时,需要外部同步,如:
* List list = C...
分类:
编程语言 时间:
2016-05-06 15:17:21
阅读次数:
194
一、概述
OpenCV使用内存存储器(memory storage)来统一管理各种动态对象的内存。内存存储器在底层被实现为一个有许多相同大小的内存块组成的双向链表,通过这种结构,OpenCV可以从内存存储器中快速地分配内存或将内存返回给内存存储器。
二、相关函数
1、创建内存块
CvMemStorage* cvCreateMemStorage( int block_size...
分类:
其他好文 时间:
2016-05-06 12:40:37
阅读次数:
101
list(双向链表) 1) * :包含头文件list **:不支持随机存取;增删元素时间是常数,只需要修改指针 2)成员函数 * :vector的成员函数list基本都有 **:以下是部分独有成员函数 sort()算法需要随机访问,故list不支持,所以引入一个成员函数sort() 3)list示例 ...
分类:
其他好文 时间:
2016-05-05 14:18:05
阅读次数:
131