leveldb源码阅读知识积累2

Arena

 

1,

typedef _W64unsigned int   uintptr_t;

为了在64位系统上运行32位程序

2,类类型的数据成员的初始化?

Arena::Arena() : memory_usage_(0) {}

3,析构函数

Arena::~Arena()

{

    for (size_ti = 0; i< blocks.size();i++)

    {

//block[i]的类型是char*,所以用delete[]

       delete[] blocks[i];

    }

}

4,

sizeof(void*)是取决于这个整形量有多少个字节而不是取决于其指向了啥决定的。

void*有多大看编译器目标平台类型。x86通常4 bytes. x64通常8bytes.

5,

strstr(str1,str2)

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2str1中首次出现的地址;否则,返回NULL

6, 对类的静态成员变量和成员函数作个总结:

一。静态成员函数中不能调用非静态成员。

二。非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。

三。静态成员变量使用前必须先初始化(如int MyClass::m_nNumber = 0;),否则会在linker时出错。

 

SkipList

(Comparator)

 

1,纯虚函数 

virtual int func() = 0;

2, static成员函数,成员变量

const Comparator* BytewiseComparator()

{     

    InitModule();//这里与源程序不一样

    return bytewise;

}

// InitModule();static方法不需要对象,直接调用

// bytewisestatic变量可以直接访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值