簡體   English   中英

初始化為對象指針的向量中的元素是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM