- 博客(35)
- 收藏
- 关注
原创 Trie树(字典树,前缀树,键树)分析详解
Trie树概述 Trie树,又称字典树、前缀树、单词查找树、键树,是一种多叉树形结构,是一种哈希树的变种。Trie这个术语来自于retrieval,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。Trie树典型应用是用于快速检索(最长前缀匹配),统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计,搜索提示等场景。它的优点是最大限度地减少无谓的字符串比较,查
2017-01-13 17:32:01
21610
3
转载 C++ 虚函数表解析
原文:《C++虚函数表解析》前言 C++中的虚函数的作用主要是实现了多态的机制。 关于多态,简而言之就是用父类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
2016-08-30 19:37:12
1562
2
原创 协程(三) 腾讯libco源码分析
腾讯的libco使用了hook技术,做到了在遇到阻塞IO时自动切换协程,(由事件循环co_eventloop检测的)阻塞IO完成时恢复协程,简化异步回调为相对同步方式的功能。其没有使用显示的调度器来管理所有协程(保存协程的相关数据),在协程切换及恢复之间主要依靠epoll_event.data.ptr来传递恢复协程所需的数据
2016-08-30 15:47:23
8240
1
原创 协程(二) 云风coroutine源码分析
云风的coroutine代码量少、简洁,非常适合用来入门协程。从中我们可以学习到协程的设计思路,例如控制权的传递、调度器的设计、协程栈的使用等概念。
2016-08-29 17:54:19
4077
原创 协程(一)快速理解协程的定义和分类
协程的概念很早以前就被提出,很多语言也实现了协程,例如Erlang,Lua。不过我首次接触协程是在学习golang的过程中,当真正使用协程的时候就被它的优雅和高效所折服,这也埋下了自己对协程好奇的种子。随着接触许多C++协程库,例如云风的coroutine、腾讯的libco、魅族的libgo等,很多当时模糊的概念也逐渐清晰。
2016-08-19 15:22:18
8253
原创 C++11内存模型详解
C++内存模型可以被看作是C++程序和计算机系统(包括编译器,多核CPU等可能对程序进行乱序优化的软硬件)之间的契约,它规定了多个线程访问同一个内存地址时的语义,以及某个线程对内存地址的更新何时能被其它线程看见.
2016-08-15 10:28:29
7163
原创 TCP中的7种定时器详解
TCP中的7种定时器:建立连接定时器、重传定时器、延迟应答定时器、坚持定时器、FIN_WAIT_2定时器、TIME_WAIT定时器
2016-08-01 15:54:47
7381
1
原创 TCP之拥塞处理详解
网络拥塞现象是指到达通信网络中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象。拥塞控制是处理网络拥塞现象的一种机制。拥塞控制是一种用来调整传输控制协议(TCP)连接上单次发送的分组数量的算法,通过增减单次发送量逐步调整,使之逼近当前网络的承载量。
2016-07-29 15:52:39
3673
原创 C++11 左值、右值、右值引用详解
左值、右值在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。
2016-07-27 13:27:58
40555
7
原创 解决 multiple definition of 问题
gcc编译multiple definition of问题解决方法,多个文件包含同一个头文件且头文件.h没有加上条件编译。因为每个.h头文件被编译生成独立的标示符,编译器链接时就出现了重复定义的错误。
2016-07-21 16:20:07
6928
原创 搜索核心技术及周边技术
Leader做了5年的搜索引擎,去年底去某宝了,临走前给我们简单分享了搜索引擎相关的干货,一直躺在邮箱里,今天抽空总结下leader关于搜索引擎的理解,以及核心技术以及周边技术。
2016-07-21 16:10:49
851
原创 C++ STL容器迭代器失效
迭代器是封装了指针、重载了 -> 、* 、++等操作符的类模板。迭代器失效,指迭代器指向错误的元素或无效的内存地址。理解迭代器失效,首先要了解容器的内部数据结构、以及该容器存储新元素和删除旧元素时的内存状态。
2016-07-21 15:57:01
2893
转载 【目标检测】Faster RCNN算法详解
Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal networks.” Advances in Neural Information Processing Systems. 2015.本文是继RCNN[1],fast RCNN[2]之后,目标检测界的领军人
2016-07-12 10:58:31
1569
原创 数据归一化及两种常用归一化方法
数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。
2016-07-04 14:39:42
21328
原创 图像搜索引擎 - 特征篇
在简介篇中我们简单说过图像特征,图像特征的提取有两种常用方式,一是提取例如SIFT特征,手工进行特征的筛选等,需要计算机视觉方面的先验性知识;二是使用当前很火的深度学习,训练出基于卷积神经网络模型的特征提取算子,某宝和某度用的就是这种方法。本文只涉及基于卷积神经网络提取出的特征。关于特征特征是计算机视觉的原材料,对最终模型的影响是毋庸置疑的。如果数据被很好的表达成了特征,通常线性模型就能达到满意的精
2016-06-29 11:08:54
2210
原创 关键词权重计算算法 - TF-IDF
TF-IDF(term frequency–inverse document frequency)算法介绍
2016-06-23 18:38:51
29528
原创 C/C++时间获取及格式化输出汇总
时间的存储结构一般有四种,time_t、struct tm、struct timeval、struct timespec。
2015-07-26 23:19:48
12389
1
原创 初探ZeroMQ(四) 管道模式中套结字总结
Overall Goals of this PatternThe pattern is intended for task distribution, typically in a multi-stage pipeline where one or a few nodes push work to many workers, and they in turn push results to one
2015-04-14 14:08:08
2446
原创 初探ZeroMQ(三) 发布-订阅模式中套结字总结
为什么说套结字类型? 因为通过分析套结字的类型,套结字的行为,我们可以更好的了解发布-订阅模式(PUB-SUB pattern)套结字类型简介: PUB 多播套结字,只能发送消息给SUB/XSUB,不能接收消息 XPUB 多播套结字,既能发送消息给SUB/XSUB,也可以接收来自XSUB的消息 SUB 接收套结字,只能接收来自PUB/XPUB的消息,不能发送消息 XS
2015-04-14 13:55:10
1387
原创 初探ZeroMQ(一)认识ZeroMQ
学习zeromq已经有段时间了,看了英文原版的zeromq guide,也看了网上对zeromq guide的译作(说实话吧,翻译质量真心不怎么高),还看了很多人写的博客.确实看了许多,学了许多,也有许多东西想记录下来.什么是zeromq先贴上一段wiki中对zeromq的说明”ØMQ (also spelled ZeroMQ, 0MQ or ZMQ) is a high-performance a
2015-04-14 11:18:31
1354
原创 初探ZeroMQ(五) 请求-响应模式的各种可靠性设计
参考资料:ØMQ - The Guide(英文) 参考资料:ØMQ - The Guide(中文) 本文是对ØMQ - The Guide 第四章 Reliable Request-Reply Pattern的整理和总结,具体代码实现请查阅ØMQ - The Guide .本文只讨论Request-Reply Pattern中的可靠性模式.
2015-04-03 18:06:03
2885
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人