ddddfang's Blog.

ddddfang's Blog.

it's better to burn out than to fade away

skip-list
1. 介绍http://blog.csdn.net/ict2014/article/details/17394259类似 并联的链表,意图替代 红黑树 等 平衡树,与红黑树一样是一种 sorted set/map。 在类似排行榜的应用场景中很常见。插入、查找、删除 复杂度亦为 O(logN) (基于概率),内部排序。优势在于实现简单,不用rebalance。与普通链表最大区别在于 每个节点 随机 包含 x 个指向 后继结点的指针而不是固定一个,每次操作率先使用跨度最大的那个 next 指针来寻找后继节点。 https://www.jianshu.com/p/fcd18946994e链表不...
union-find-set
用于归类,判断动态连通性的一种概念。比如下面 0-9 个点,归并(4,3)即认为 4和3 同组(或者连通)。一波 归并 操作之后,查看某两个点是否连通(同组)。http://blog.jobbole.com/108359/ 实现思路:1、我们可以给每个元素设定一个 group_id 变量,指示自己所属的组。每当归并两个元素(A 和 B,group_id 分别为 group_id1 和 group_id2)的时候,遍历查询,吧所有group_id1全部改成group_id2(或者全部把group_id2 改成 group_id1,等价)。但是这样效率成为问题。每次归并两个group的时候...
cpp-shared_ptr
对于拥有构造函数的对象而言 new ABC 与 new ABC() 效果等同,但对于内置类型而言,eg. new int 指向的int未初始化,而 new int()指向的int采用值初始化(0)动态内存管理3个常见问题:1.忘记 delete2.使用以及释放的内存,释放内存后将其置为 nullptr 是个好习惯,防止野指针,但是保护有限,比如可能存在多个指针指向相同的内存3.重复delete(p437)坚持只使用智能指针可以避免所有这些问题! 智能指针和内置指针最好不要混用(因为一旦智能指针接管了内置指针,就可能在某些时候释放他)! 智能指针类能记录有多少个用户通过 shared_pt...
swig
1. 概述swig可以将c/c++编写的code生成其他语言(python / js / java / c# / perl / lisp / ….)的接口,本质是一个代码生成工具. 2. 安装swig install 123456789101112$ sudo apt-get install automake$ sudo apt-get install flex bison$ git clone https://github.com/swig/swig.git$ cd swig$ ./autogen.sh$ ./configure --prefix=/some/directory$ ma...
cpp---sequential-container
所有顺序容器都提供了快速访问元素的能力,标准库中的顺序容器包括: vector 可变大小数组,支持快速随机访问,尾部插入/删除元素较快(其他位置较慢,因为伴随元素的移动)(内部为数组实现) deque 双端队列,支持快速随机访问,头部/尾部插入/删除较快(数组实现的) list 双向链表,只支持双向顺序访问.任何位置插入/删除都很快(链表实现) forward_list 单向链表 array 固定大小数组,支持快速随即访问,不可添加/删除元素(比内置数组更安全/易用) string 与vector类似,但只用于保存字符,尾部插入/删除速度快 ...
cpp---key-val-set
<参看 c++primer p407,ch11> 1. 概述 顺序容器包括vector、deque、list、forward_list、array、string,顺序容器都提供了快速(顺序)访问元素的能力, vector封装数组,list封装了链表 关联容器包括set、map, set存储的是key类型的元素, map存储的元素是{key,val}组成的pair类型, 创建一个pair可以 pair<T1,T2> p; 或者pair<T1,T2> p(v1,v2); 或 pair<T1,T2> p={v1,v2}; 或 make_pair(...
caffe-ubuntu14-gpu
caffe ubuntu14 gpu环境安装 安装依赖 123456789sudo apt-get install build-essential cmake gitsudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install libgflag...
learn-caffe-code
下面是学习caffe框架时候的笔记,大部分来自caffe 官方文档, 阅读caffe code时的注释在 这里 概述Caffe is a deep learn framework Expression: models and optimizations are defined as plaintext schemas instead of code. Speed: for research and industry alike speed is crucial for state-of-the-art models and massive data. Modularity: new t...
cpp---define
1. define基本用法#define命令是C语言中的一个宏定义命令,它用来将一个标识符(宏名)定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。程序编译之前,编译的时候所有的宏名都会被定义的字符串替换,这便是宏替换。理解宏定义的关键在于 “替换”。 该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。 简单的宏定义:#define <宏名>  <字符串>例: 12#define PI 3.14float pi2 = PI * 2;//pi2 = 6.28 带参数的宏定义#define <宏名> (<参数表>...
cpp---sort
c++中的sort接口 接口 说明 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_copy 对给定区间复制并排序 nth_element 找出给定区间的某个位置对应的元素 is_sorted 判断一个区间是否已经排好序 partition 使得符合某个条件的元素放在前面 stable_partition 相对稳定的使得符合某个条件的元素放在前面 需要头文件语法描述:sort(begin,end,cmp),cmp参数可...
avatar
ddddfang
nothing to be told
FRIENDS
baidu ruanyifeng