STL 迭代器与容器类一起使用,在概念上类似于指向存储在容器中的特定元素的指针。
以下陈述之一是正确的。哪一个?
- 迭代器通常保存一个地址(指针),并且应用于迭代器的 operator++ 总是增加该地址。
- 当迭代器
it
超出程序的范围时,it
会被破坏,它会自动调用delete it
;。 - 对于有效的 STL 容器 myC,当表达式 myC.end()-myC.begin() 定义良好时,它返回与 myC.size() 相同的值。
- 当容器超出范围时,指向它的所有迭代器都会自动修改。
- 对于有效的 STL 容器 myC,myC.end() 返回的迭代器引用 myC 中的最后一个有效元素。
显然解决方案是3。但我不明白为什么。有人可以详细说明为什么会这样,并可能说明为什么其他人也是错误的吗?