类定义向量的Push_back函数

时间:2017-01-12 05:51:29

标签: c++ vector push-back

我有一个向量,它接受一个名为Bug的类的类值,该类存储每个实例的质量和腿数。我在使用push_back函数时遇到了麻烦,并怀疑它只是一个语法问题,但无法弄清楚我做错了什么。我想在向量的末尾添加3个值。这是我的部分代码:

std::vector<Bug> bugs(5); //vector definition
bugs.push_back(3);

1 个答案:

答案 0 :(得分:3)

如果您尝试添加3个默认构造的错误,则需要调用push_back 3次:

struct Bug{};  
std::vector<Bug> bugs(5); //vector instantiation 
bugs.push_back(Bug{});
bugs.push_back(Bug{});
bugs.push_back(Bug{});

您还可以使用emplace_back)。它期望构造函数参数 在这种情况下,没有参数:

struct Bug{};  
std::vector<Bug> bugs(5);
bugs.emplace_back();
bugs.emplace_back();
bugs.emplace_back();

除了使用循环外,您还可以使用resize添加N个新元素:

bugs.resize(bugs.size()+n);