Push_back新元素到vector

push_back new element to vector

本文关键字:元素 vector back 新元素 Push      更新时间:2023-10-16

我有这个向量:

std::vector<my_class> my_vector;

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

my_vector.push_back(my_class());

有没有办法在不直接提及类型的情况下做到这一点?例如:

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

std::vector有一个名为emplace_back的成员函数,该成员函数根据提供给该函数的实参,在vector中构造一个vector元素类型的新实例。

如果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();

相关文章: