comparator是一个抽象类,它提供slice的比较,它必须是线程安全的,因为leveldb会从多个线程调用其中的方法。
代码如下:

class LEVELDB_EXPORT Comparator {
public:
virtual ~Comparator();

//比较的返回值:
// "a" < "b",返回值小于0
// "a"=="b",返回值等于0
// "a" > "b",返回值大于0
virtual int Compare(const Slice& a, const Slice& b) const = 0;

// 比较器的名字,可以用来判断比较器是否匹配
virtual const char* Name() const = 0;

//查找start和limit之间的短的串,并赋值给*start,用来节省空间
virtual void FindShortestSeparator(
std::string* start,
const Slice& limit) const = 0;

// 找一个大于等于*key的短字符串
virtual void FindShortSuccessor(std::string* key) const = 0;
};

返回字典字节序的内置比较器,代码如下:

LEVELDB_EXPORT const Comparator* BytewiseComparator();

学习是一种慰藉,编程是一种情怀,技术提升永不可辜负!
每天进步一点点!