所以当我们需要从头到尾遍历一个容器时,我们会写类似
for (i = v->begin(); i != v->end(); i++)
假设 i
是容器 v
的迭代器。
我的问题是“什么保证 end 总是指向容器中最后一个元素之后的元素?” STL 是如何确保这种行为的,这种情况有没有可能是不正确的?
最佳答案
STL 通过始终存储如下内容来确保这种行为:
在结尾(双关语)中,end()
是并不重要,只要始终是 end()
(显然,不能与任何其他节点混淆)。
关于c++ - end() 在 STL 容器中是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810312/