网站域名备案资料,广西建设职业技术学院贫困生网站,网络运营工作内容,wordpress商城模板添加产品补充线性表数组实现的迭代器部分
知识点#xff1a;
typedef是C语言中的一个关键字#xff0c;它的主要作用是为一种数据类型定义一个新的名字#xff08;别名#xff09;。
在 C 的 STL#xff08;Standard Template Library#xff09;中#xff0c;迭代器是连接容…补充线性表数组实现的迭代器部分
知识点
typedef是C语言中的一个关键字它的主要作用是为一种数据类型定义一个新的名字别名。
在 C 的 STLStandard Template Library中迭代器是连接容器和算法的桥梁。根据迭代器的功能和特性STL 将迭代器分为以下五种类别 输入迭代器Input Iterator只读支持单向遍历。 输出迭代器Output Iterator只写支持单向遍历并写入元素。 前向迭代器Forward Iterator支持单向遍历并允许多次遍历同一序列即支持多次读取。 双向迭代器Bidirectional Iterator支持双向遍历即可以向前也可以向后逐个遍历元素。 随机访问迭代器Random Access Iterator支持在常数时间内访问序列中的任意元素并提供了丰富的算术运算能力。
ptrdiff_t 类型变量通常用来保存两个指针减法操作的结果。
代码
templatetypename T
class iterator
{
public:typedef bidirectional_iterator_tag iterator_category;typedef T value_type;typedef ptrdiff_t difference_type;typedef T* pointer;typedef T reference;iterator(T* thePosition 0){position thePosition;}T operator*() const{return *position;}T* operator-() const{return *position;}iterator operator(){position;return *this;}iterator operator(int){auto old *this;position;return old;}iterator operator--(){--position;return *this;}iterator operator--(int){auto old *this;--position;return old;}bool operator!(const iterator right) const{return position ! right.position;}bool operator(const iterator right) const{return position right.position;}protected:T* position;
};
在类arrayList中增加下面两个pubilc函数 class iterator;iterator begin(){return iterator(m_pElement);}iterator end(){return iterator(m_pElement m_iListSize);}