push_back向量的新元素

时间:2015-10-25 16:05:57

标签: c++ c++11 vector

我有这个载体:

std::vector<my_class> my_vector;

我想用默认构造函数添加新项目。所以,我写道:

my_vector.push_back(my_class());

有没有办法直接提到这种类型呢?例如:

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

5 个答案:

答案 0 :(得分:15)

std::vector有一个名为documentation的成员函数,它从向函数提供的参数构造向量中元素类型的新实例。

因此,如果my_class是默认可构造的,您可以执行以下操作:

my_vector.emplace_back();

答案 1 :(得分:2)

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

答案 2 :(得分:2)

如果您的类允许默认构造函数:

my_vector.push_back({});

答案 3 :(得分:1)

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

答案 4 :(得分:1)

my_vector.push_back({});

甚至更好

my_vector.emplace_back();