目录
1.deque
vector和list的优缺点
效率比较
2.反向迭代器
和正向迭代器相比,除了++/--时方向相反,其他操作基本一致。下面为list的反向迭代器
stl源码中的vector反向迭代器
反向迭代器的简单模拟实现
namespace bit
{
template<class Iterator,class Ref,class Ptr>
struct Reverse_iterator
{
Iterator _it;
typedef Reverse_iterator<Iterator, Ref, Ptr>Self;
Reverse_iterator(Iterator it)
:_it(it)
{}
Ref operator*()
{
Iterator tmp = it;
return *(--tmp);//为了满足对称,返回迭代器的上一个位置
}
Ptr operator->()
{
return &(operator*());
}
Self& operator++()
{
--_it;
return *this;
}
Self& operator--()
{
++_it;
return *this;
}
bool operator!=(const Self& s)
{
return _it != s._it;
}
};
}
list中使用反向迭代器
vector适配实现即可。任何容器实现其正向的迭代器后就可适配生成相应反向迭代器