迭代器
STL有6大组件
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。
迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。
- list::iterator 的模拟实现
源代码
#pragma once
#include <iostream>
using namespace std;
#include <assert.h>
template<class T>
struct ListNode
{
ListNode* _prev;
ListNode* _next;
T _data;
ListNode(const T& x)
:_data(NULL)
, _prev(NULL)
, _next(NULL)
{}
};
template<class T,class Ref,class Ptr>
struct ListIterator
{
typedef ListNode<T> Node;
typedef ListIterator<T, Ref, Ptr> Self;
Node* _node;
ListIterator(Node * node)
:_node(node)
{}