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