簡體   English   中英

push_back向量的新元素

[英]push_back new element to vector

我有這個向量:

std::vector<my_class> my_vector;

我想用默認構造函數添加新項。 所以,我寫道:

my_vector.push_back(my_class());

有沒有辦法直接提到它? 例如:

 my_vector.push_back(auto()); // imaginary code

std::vector有一個名為emplace_back的成員函數,它從向函數提供的參數構造向量中元素類型的新實例。

因此,如果my_class是默認可構造的,您可以這樣做:

my_vector.emplace_back();

my_vector.resize(my_vector.size() + 1);

如果您的類允許默認構造函數:

my_vector.push_back({});
my_vector.push_back(decltype(my_vector)::value_type());

my_vector.push_back({});

甚至更好

my_vector.emplace_back();

暫無
暫無

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

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