STL迭代器与容器类一起使用,在概念上与指向容器中存储的特定元素的指针类似。容器和迭代器(多项选择)
以下陈述之一是正确的。哪一个?
- 迭代器通常保存地址(指针),并且应用于迭代器的operator ++总是增加该地址。
- 当迭代器
it
超出程序范围时,it
被破坏,它会自动调用delete it
;。 - 对于有效的STL容器myC,当表达式myC.end() - myC.begin()被很好地定义时,它返回与myC.size()相同的值。
- 当容器超出作用域时,所有指向它的迭代器都会自动修改。
- 对于有效的STL容器myC,由myC.end()返回的迭代器引用myC中的最后一个有效元素。
显然解决方案是3.但我不明白为什么。有人可以详细说明为什么会出现这种情况,并可能说明为什么其他人也是虚假的?
你明白任何的五? – Beta 2013-02-28 06:39:17
你能解释一下每个实例中究竟发生了什么吗?3中“明确定义”是什么意思? – 2013-02-28 06:50:45
@BobJohn它意味着迭代器支持算术相减,这对一类迭代器[RandomAccessIterators](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator)是可能的。 – WhozCraig 2013-02-28 07:26:55