ceph源码中interval_set类

interval_set 类


在ceph源码中多次使用到,这里简单记录备注一下。

interval_set中实现了两个内部迭代器类:

// const_iterator
class const_iterator : public std::iterator <std::forward_iterator_tag, T>
{
...
protected:
	typename std::map<T,T>::const_iterator _iter; 
}

//iterator
class iterator : public std::iterator <std::forward_iterator_tag, T>
{
...
protected:
	typename std::map<T,T>::iterator _iter;
}

内部成员变量:

private:
	int64_t _size;
	std::map<T,T> m;

成员变量m是一个map类型里面记录了模板类T的键值对集合,其key是start,value是length,即从start开始延续的长度。_size是所有m中所有len的总和。


版权声明:本文为litianze99原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。