2012-01-28 54 views

回答

7

23.2.3§4說:

a.clear() [...] 會使所有的引用,指針和迭代器指的是a元素還可能違反了過去,一個結束迭代器。

由於是「非失效」,使用後ptr結果clear不確定的行爲沒有這樣的事情。

在附註中,不需要&(myvector[0])中的括號。在C++中,Postfix運算符總是比前綴運算符具有更高的優先級,所以編寫&myvector[0]就好了。

+0

啊。謝謝,我糾正了。 – wilhelmtell 2012-01-28 17:02:07

3

它可能指向垃圾。 vector當實例增長或縮小時,根據需要重新分配內存,因此不能依賴地址不變。這就是爲什麼vector使用的類型必須遵守STL兼容的約束,如可複製性。這也是爲什麼auto_ptr在STL容器中不安全的原因。

相關問題