我有这个载体:
std::vector<my_class> my_vector;
我想用默认构造函数添加新项目。所以,我写道:
my_vector.push_back(my_class());
有没有办法直接提到这种类型呢?例如:
my_vector.push_back(auto()); // imaginary code
答案 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();