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的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回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方法不需要对象,直接调用