迭代器的算术操作问题
C++Primer中文版(第4版) 第三章 迭代器的算术操作
迭代器相减的问题
说相减两个迭代器必须指向同一vector中的元素或vector末端之后的下一个元素。
这里vector末端之后的下一个元素 到底是什么意思啊。
[解决办法]
迭代器类似于指针,同一个vector中的元素相减才有意义,vector末端之后的下一个元素是指vector尾地址的下一个地址
[解决办法]
由end操作返回的迭代器并不指向vector中任何实际的元素,相反,它只是起一个哨兵(sentinel)的作用,表示我们已处理完vector中所有元素。
[解决办法]
那个元素是一个无效的对象(理解成不存在也行吧)。访问一个无效的对象才是错的。但是指向一个无效的位置却没有错。只要不对它解引用就行了。
[解决办法]