shi*_*494 3 c++ list listiterator
这是关于迭代器如何在C++中的列表上工作的混淆.如果我错了,请纠正我.
引擎盖下的列表(在C++中)是双链表.我们知道双向链表的结构 - 数据区和指向下一个和前一个节点的指针.因此,双向链表中的每个节点都在内存中有一个地址.当我们在列表上声明一个迭代器时,它指向这个地址.因此,当我们解析迭代器时,我们如何只得到数据值呢?
sep*_*p2k 10
迭代器的dereference运算符被简单地定义为返回(引用)节点中包含的值.例如,它可以像这样定义:
template<T>
T& list<T>::iterator::operator *() {
return this->node_pointer->value;
}
Run Code Online (Sandbox Code Playgroud)