簡體   English   中英

使用默認構造函數初始化std :: vector

[英]Initializing a std::vector with default constructor

我有一個類字段,它是一個std :: vector。 我知道我希望這個向量包含多少個元素:N。如何用N個元素初始化向量?

class myclass {
   std::vector<whatever> elements;
public:
   myclass() : elements(N) {}
};

std::vector有一個構造函數聲明為:

vector(size_type N, const T& x = T());

您可以使用它來構造包含Nx副本的std::vector x的默認值是初始化為T的值(如果T是具有默認構造函數的類類型,則值初始化是默認構造)。

使用此構造函數初始化std::vector數據成員很簡單:

struct S {
    std::vector<int> x;
    S() : x(15) { }
} 

允許您指定大小的所有構造函數也會調用元素的構造函數。 如果效率至關重要,則可以使用reserve()成員函數來保留大小。 這實際上並不創建任何元素,因此它更有效。 但是,在大多數情況下,通過向量構造函數提供大小就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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