[英]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());
您可以使用它來構造包含N
個x
副本的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.