![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 77
shangmin
这个作者很懒,什么都没留下…
展开
-
求一个很大的数组(乱序)排序后从第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 · 992 阅读 · 0 评论 -
boost bimap简介
很多人都熟悉c++ stl,各种各样的容器vector, list, set这些,还有一些算法find, binary_search, sort等等给我们编程的时候提供了很多方便。但是有时候在使用的时候还是感觉到有点不足,例如循环使用的buffer, 智能指针,类似java里面的foreach,这些都在stl库里面没有,如果要自己实现的话,设计开发测试起来挺麻烦的。有一个开源的类似于stl的程序库原创 2011-12-08 17:06:41 · 1167 阅读 · 0 评论 -
boost lexical_cast使用
在进行编码时经常需要将整型数转化为string, 或者string转成整型数,或者char[]转化为整数。当然这些函数都不难,完全可以自己实现,不过自己实现肯定要浪费一些时间进行编码和测试。boost的lexical_cast基本上提供了我们需要的所有常用的转化功能,需要的时候可以使用。 一个的例子如下:#include "boost/lexical_cast.hpp"#i原创 2011-12-20 11:32:31 · 764 阅读 · 0 评论 -
分布式key/value cache redis(version: 2.4.2) 源码学习(二)--------dict(哈希表)学习
在程序中很多地方我们会用到哈希表,因为它可以实现快速的增删查改操作。redis中也多次用到了哈希表,这几天仔细看了一下其中哈希表的实现dict.h和dict.cpp文件,这里对它的源码进行一些解析。 哈希表最重要的无非就这几样东西,一个是哈希函数的性能和计算散列值的分布情况,另外一个是如何处理冲突,最后一个是当负载率越来越高导致性能下降的时候,如何重构哈希表。现在对哈希函数的研究原创 2011-12-21 19:46:11 · 1018 阅读 · 0 评论 -
boost circular_buffer的使用
有时候我们需要固定大小的一个类似数组的东西,存储比如一个用户最近10天的留言记录这些东西,但是又想实现随机访问,也就是支持下标的操作,list肯定是不适合的,因为它不支持随机访问。当然我们可以用vector或者deque做类似的模拟封装,但是这样比较麻烦,boost库提供了一个circular_buffer,包含了stl deque和vector的几乎所有功能,而且可以指定大小。如果其中的元素的数原创 2011-12-31 11:29:17 · 4561 阅读 · 0 评论