![](/img/trans.png)
[英]Vector of pointers, elements of which initialized with new: what happens when assigning a new value?
[英]What are elements in a vector of object pointers initialized to?
假設我的對象叫做THING,它有一個指向另一個THING的指針。 我希望能夠將對象內的THING指針指向指向THINGS的指針矢量內的任何元素,但我不希望它指向某個垃圾值,所以我想知道元素是否初始化為NULL ,這將與我如何構建一個包含這些對象和對象指針向量的類一起工作。
簡而言之,有人知道指針向量中的元素被初始化為什么嗎?
編輯:澄清一下,我使用中的標准向量類。
創建向量后,其中的所有元素都將值初始化。 因此,如果您有指針向量,則除非更改值,否則它們都將指向NULL。
如果您有一個普通的老式C樣式數組,例如Foo vfoo[10];
,則不nullptr
指針初始化為nullptr
(即未進行值初始化),而是默認初始化。 僅當您將std::vector
聲明為例如std::vector<Foo> vfoo(10);
,則其元素將被值初始化,並且您的指針將為nullptr
。
參見std::vector<>
的構造函數:
explicit vector (size_type n, const T& value= T(), const Allocator& = Allocator());
在這里const T& value= T()
進行值初始化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.