- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 boost circular_buffer的使用
有时候我们需要固定大小的一个类似数组的东西,存储比如一个用户最近10天的留言记录这些东西,但是又想实现随机访问,也就是支持下标的操作,list肯定是不适合的,因为它不支持随机访问。当然我们可以用vector或者deque做类似的模拟封装,但是这样比较麻烦,boost库提供了一个circular_buffer,包含了stl deque和vector的几乎所有功能,而且可以指定大小。如果其中的元素的数
2011-12-31 11:29:17
4621
原创 分布式key/value cache redis(version: 2.4.2) 源码学习(二)--------dict(哈希表)学习
在程序中很多地方我们会用到哈希表,因为它可以实现快速的增删查改操作。redis中也多次用到了哈希表,这几天仔细看了一下其中哈希表的实现dict.h和dict.cpp文件,这里对它的源码进行一些解析。 哈希表最重要的无非就这几样东西,一个是哈希函数的性能和计算散列值的分布情况,另外一个是如何处理冲突,最后一个是当负载率越来越高导致性能下降的时候,如何重构哈希表。现在对哈希函数的研究
2011-12-21 19:46:11
1049
原创 boost lexical_cast使用
在进行编码时经常需要将整型数转化为string, 或者string转成整型数,或者char[]转化为整数。当然这些函数都不难,完全可以自己实现,不过自己实现肯定要浪费一些时间进行编码和测试。boost的lexical_cast基本上提供了我们需要的所有常用的转化功能,需要的时候可以使用。 一个的例子如下:#include "boost/lexical_cast.hpp"#i
2011-12-20 11:32:31
800
原创 boost bimap简介
很多人都熟悉c++ stl,各种各样的容器vector, list, set这些,还有一些算法find, binary_search, sort等等给我们编程的时候提供了很多方便。但是有时候在使用的时候还是感觉到有点不足,例如循环使用的buffer, 智能指针,类似java里面的foreach,这些都在stl库里面没有,如果要自己实现的话,设计开发测试起来挺麻烦的。有一个开源的类似于stl的程序库
2011-12-08 17:06:41
1245
原创 分布式key/value cache redis(version:2.4.2) 源码学习(一)--------intset学习
前记: 最近看了一些redis(详情请查看http://redis.io/)相关的东西,网上很多人对这个评价很不错,也有一些网站开始使用这个了。想着自己可以学习一下redis的源码,进行一些深入的研究。看了一点觉得太难了,基本上都看不懂,不过既然开了这个头了,就不能轻易退出。先从最简单自己能看懂的看起,将自己的理解和心得写下来,以便以后复习,别人看到了也能指出其中写的不对,理解不对
2011-12-06 10:25:40
592
原创 求一个很大的数组(乱序)排序后从第i大到第j大之间的所有元素,并且这些元素之间要求有序
有时候我们会碰到这样一种情况,有一个很大的乱序数组raw_array[0 -> n -1](百万量级甚至更大),要求这个数组排序后从第i大到第j(j >= i)大个元素,这些元素之间要有序,其中j - i 远小于数组长度n。 这个问题很明显的做法就是对原数组raw_array进行排序,排序后的数组为sorted_array[0 -> n - 1], 需要的结果就是sorted_a
2011-12-05 10:09:39
1040
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人