c++ - 关于迭代器begin()函数的问题

标签 c++ iterator

在链接下方,我看到了 iterator begin 函数是如何工作的,但不是很清楚。

https://secweb.cs.odu.edu/~zeil/cs361/web/website/Lectures/iterators/pages/implem.html

在他们那里,我看到了 begin 函数,但不明白它是如何工作的

  Book::iterator Book::begin()
  {
   Book::iterator it;
   it->pos = authors;
    return it;
  };

在这个 it 中是对象,但是在这个 it-> 中我认为这重载了 operator->() 我认为它的工作方式类似于 it.operator->().pos 但我不确定 在那之后为什么它返回 it 我的问题是什么是 return it 我没有得到清晰的图片。

最佳答案

我很确定这是一个错误,它应该只是 it.pos = authors 因为它试图设置迭代器的值而不是取消引用迭代器(它没有被初始化所以可能会崩溃)并在指向的节点上设置一个值。

关于c++ - 关于迭代器begin()函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701661/

相关文章:

c++ - 在C++中从HDF5读取复合数据类型的字符串

vector - 为什么在迭代引用向量时会得到对类型的双重引用?

python - 如何在 python 中生成所有可能的字符串?

c++ - Sublime text 3 build 3083 未自动选择运行变体

c++ - 调用 Isolate::New() 后执行位置 0x0000000000000000 时发生访问冲突

c++ - 如何纠正对运算符优先级的错误假设以消除代码的副作用?

c++ - 从导致AccessViolationException的线程访问文件缓冲区

c# - 使用 yield 的方法不允许调用自己

python - 理解pandas中的行迭代(python)

c++ - 定义通用变换迭代器以迭代不同的容器类型