- 博客(56)
- 资源 (7)
- 收藏
- 关注
转载 memcached源码分析
一个星期时间的工作,不可能对memcache有很深刻的分析.文档本身的目的在于为以后的研究准备一个总结资料.刚接触memcache时,对其设计分 布式的思路感到十分欣喜,因为在中间层以极小的代价实现简单分布式无疑成为一些要求不是很高的分布式应用的一个很好的设计思路,这个特性决定 memcache本身在分布式应用中,单个结点之间是Server相互独立,不会存在同级之间的通信.一个结点拒绝访问,如果没
2014-06-27 15:44:48 478
原创 memcache源码分析系列之四 item内存分配与回收
item *do_item_alloc(char *key, const size_t nkey, const int flags, const rel_time_t exptime, const int nbytes, const uint32_t cur_hv) { uint8_t nsuffix;
2014-06-30 19:06:05 464
原创 memcache源码分析系列三 assoc动态扩容
assoc动态扩容的条件:if (! expanding && hash_items > (hashsize(hashpower) * 3) / 2)
2014-06-28 16:19:43 545
原创 sphinx DebugDump
void CSphIndex_VLN::DebugDumpHitlist ( FILE * fp, const char * sKeyword, bool bID ){ WITH_QWORD ( this, false, Qword, DumpHitlist ( fp, sKeyword, bID ) );}#define WITH_QWORD(INDEX, NO_S
2013-02-02 14:00:20 106
原创 DiskIndexQword_c--getDocNext()
// small bitvector of 256 elements.class CSphSmallBitvec{public: static const int iTOTALBITS = 256;private: typedef unsigned long ELTYPE; static const int iELEMBITS = sizeof ( ELTYPE ) * 8; s
2013-02-01 14:44:25 83
原创 GetMatch
template int ExtRanker_T::GetMatches (){ if ( !m_pRoot ) return 0; int iMatches = 0; const ExtHit_t * pHlist = m_pHitlist; const ExtDoc_t * pDocs = m_pDoclist; // warmup if necessary if (
2013-02-01 00:26:52 488
原创 ExtHit_t到底什么含义呢
/// hit in the streamstruct ExtHit_t{SphDocID_t m_uDocid;Hitpos_t m_uHitpos;WORD m_uQuerypos;WORD m_uNodepos;WORD m_uSpanlen;WORD m_uMatchlen;DWORD m_uWeight;};
2013-02-01 00:03:59 167
原创 template < typename STATE > int ExtRanker_T<STATE>::GetMatches ()之m_tState.Update ( pHlist++ )解析
sph04匹配对应的类为RankerState_ProximityBM25Exact_fndasf// sph04, proximity + exact booststruct RankerState_ProximityBM25Exact_fn{ BYTE m_uLCS[SPH_MAX_FIELDS]; BYTE m_uCurLCS; int m_iExpDelta; DWOR
2013-01-30 00:29:05 136
原创 ExtRanker_T < RankerState_ProximityBM25Exact_fn > ( tXQ, tTermSetup )
需要解决的问题:ExtRanker_T为什么会有关键字信息?以及他的构造函数做了什么?pRanker = new ExtRanker_T ( tXQ, tTermSetup );tXQ其实是一颗关键字的树,里边包含搜索关键字的方法。所以在构造ExtRanker_T的时候,打分排序类就包含了关键字的信息。ExtQwordsHash_t hQwords;pRanker
2013-01-29 00:21:09 151
原创 《sphinx源码分析之搜索》学习
开始ISphRanker * sphCreateRanker ( const XQQuery_t & tXQ, const CSphQuery * pQuery, CSphQueryResult * pResult, const ISphQwordSetup & tTermSetup, const CSphQueryContext & tCtx ){ // shortcut const
2013-01-28 22:53:17 141
原创 vs2003链接错误
TencentWeiboCpp fatal error LNK1104: 无法打开文件“xl_lib_static.lib”工具->选项
2012-02-28 10:42:51 308
原创 MFC 常见错误
1. error c2011:"Cobject":"class"type redefinition 头文件重复包含:#ifndef #define #endif2. error C2243: 'type cast ' : conversion from 'class CTeacher * ' to 'class CBase * ' exists, but is inaccessib
2011-11-19 21:25:32 195
原创 数组元素或者vector频繁整体移位 函数模板
当我需要频繁地移动整块的数组元素时,我首先想到的两个方法是memmove和STL中的copy算法,但是memmove只适用于字符串,而copy算法则des和source不能重叠。所以我仿照memmove写了一个。#include #include #include
2011-09-03 17:32:50 824
转载 STL bind1st bind2nd详解
转载自:STL bind1st bind2nd详解2010年9月19日 代码疯子 先不要被吓到,其实这两个配接器很简单。首先,他们都在头文件中定义。其次,bind就是绑定的意思,而1st就代表first,2nd就代表second,现在名在可以很快记住了。再
2011-08-30 16:11:06 587
转载 STL中的排序算法一览
STL中有多种排序算法,各有各的适用范围,下面听我一一道来:I、完全排序sort() 首先要隆重推出的当然是最最常用的sort了,sort有两种形式,第一种形式有两个迭代器参数,构成一个前开后闭的区间,按照元素的 less 关系排序;第二种形式多加一个指定排序
2011-08-28 16:58:24 1015
原创 STL之partial_sort排序学习
partial_sort(beg,mid,end)partial_sort(beg,mid,end,comp)对mid-beg个元素进行排序,也就是说,如果migd-beg等于42,则该函数将有序次序中的最小值元素放在序列中的前42个位置。partial_sort完成
2011-08-28 16:43:10 3734
原创 vc6.0 调试 vector
(1)首先我们看下调试vector#include using namespace std;struct A{ int x,y; A(int a = 0,int b = 0):x(a),y(b){}};void main(){ int array[]
2011-08-28 11:32:32 1971 2
转载 STL priority_queue c++用法
priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 pr
2011-08-28 08:58:00 683
原创 cout 快速输出 数组或者容器 空格或其他符号
通过STL可以快速输出数组或者容器中的元素!利用for_each()#include #include #include using namespace std;void print(char elem){ cout << elem << ' ';}
2011-08-27 22:41:39 1419
原创 STL 堆操作
STL里面的堆操作一般有:make_heap(), push_heap(), pop_heap(), is_heap(), sort_heap()他们的头文件函数是#include algorithm>make_heap()函数原型:void make_h
2011-08-27 22:29:56 1484
原创 关于srandom和random
在vc++中程序中用了srandom()和random(),头文件为stdlib.h,但编译出现错误error C3861: “srandom”: 找不到标识符。 原因是现在vc++编译器的库函数中没有randomize()和random(),分别用srand()和rand
2011-08-26 16:35:50 4273
转载 c++ 3年工作总结 书籍
对3年来学习中书籍的整理、评价,主要为c/c++方面。分数为个人意见,虽然大家都知道,但还是强调下,免得口水。分1-5,5为最高。 格式:英文名-中文名-作者-出版社-个人评价-评分。无译者说明是因为建议看原版。p.s:国产图书要努力,因看过的国产书基本是
2011-08-26 12:00:04 852
转载 STL入门资料
2007.8.2 20:01 作者:cdy201 STL入门教程: 标准模板库(STL)介绍 ★★★★★ 本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过。STL实践指
2011-08-26 11:26:03 548
原创 最小堆 c++源代码
#ifndef _MINHEAP_H#define _MINHEAP_Htemplate class MinHeap //最小堆ADT定义{private: T* heapArray; //存放堆数据的数组 int CurrentSize;
2011-08-26 09:53:31 2359 1
原创 vc6.0 调试 指针 类的指针成员
当我们定义了一个指针并给它分配了一段内存,经常会遇到调试的问题,这时一个相当棘手的问题,现在就看看如何调试指针。现在先看下普通指针: int *p = new int(4); p[0]=4; p[1]=1; p[2]=2; p[3]=3; delete p;
2011-08-25 23:01:47 549
转载 数据结构与算法--北京大学张铭 (课件和视频)迅雷下
原文地址:(课件和视频)迅雷下" style="text-decoration:none; color:rgb(68,112,119)">数据结构与算法--北京大学张铭 (课件和视频)迅雷下作者:rock 北京大学信息学院2004年《
2011-08-25 15:09:56 4369 2
原创 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 c++ STL 模板
//前序周游二叉树或其子树templatevoid BinaryTree::PreOrder(BinaryTreeNode* root){ stack* > aStack; BinaryTreeNode* pointer=root; while(!aStack.emp
2011-08-24 20:45:58 857
原创 二叉树的前序遍历 非递归的几种方法
第一种:template void BinaryTree::PreOrderWithoutRecusion(BinaryTreeNode* root)//非递归前序遍历二叉树或其子树{ using std::stack; //使用STL中的stack stac
2011-08-24 20:28:20 431
原创 函数返回值是指针的引用 函数形参是引用
马上要找工作了,复习数据结构的二叉树!所以实现一下,但是在创建二叉树时遇到了一些问题!tree.h#ifndef _TREE_H#define _TREE_H#include #include #include using namespace std;
2011-08-24 15:49:38 1572
原创 'operator <<' is ambiguous的问题
今天在群里,有人遇到了这样的问题!他的程序在vc6.0下遇到的,但相同的程序在05下就没有问题了。(这个问题应该跟编译器的版本有问题,高版本的编译器就能编译通过)开始的程序如下class RationalNumber{ friend ostream& oper
2011-08-23 21:50:27 1787 1
原创 数据结构 循环队列 顺序表实现
1. 当队尾插入元素时,Q.rear++;弹出元素时,Q.front++;2.当队列满时,Q.rear的下一个元素是Q.front;#include using namespace std;#define MAXQSIZE 100typedef int Q
2011-08-22 20:45:26 1133
原创 数据结构 队列源代码
#include #include using namespace std;typedef int SElemType;struct Node{ SElemType data; struct Node* next;};typedef
2011-08-22 17:57:28 1680
原创 数制转换
#include #include #include using namespace std;void conversion(int source,int base){int i=0,j=0;stack s;string number(""
2011-08-22 16:04:30 59
原创 数据结构 栈源代码
#include #include using namespace std;#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType;typedef struct{ SE
2011-08-22 15:21:39 790
原创 string类型与常见数据类型之间的转化
1. string -> CStringCString cs;string s("abc");cs.Format("%s",s.c_str());2.string -> const char* string s("abc");const char* c
2011-08-21 12:32:07 467
原创 string.c_str()到底做了什么
string s("abc"); const char* b = s.c_str(); s.append("def"); cout 输出:abcdef本来我想直接使用返回的一个与s内容相同的字符串,但是对s追加东西的时候,b所指向的字符串的内容也改变了。所以我们来看
2011-08-20 23:01:20 7669 1
原创 c++输出变量类型 typeid操作符
#include #include using namespace std;struct A{ int a; int b;};void main(){ A b; b.a = 3; b.b = 4; int a = 4; cout << type
2011-08-20 21:59:10 2611
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人