我有一个向量,它接受一个名为Bug的类的类值,该类存储每个实例的质量和腿数。我在使用push_back函数时遇到了麻烦,并怀疑它只是一个语法问题,但无法弄清楚我做错了什么。我想在向量的末尾添加3个值。这是我的部分代码:
std::vector<Bug> bugs(5); //vector definition
bugs.push_back(3);
答案 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
(c++11)。它期望构造函数参数
在这种情况下,没有参数:
struct Bug{};
std::vector<Bug> bugs(5);
bugs.emplace_back();
bugs.emplace_back();
bugs.emplace_back();
除了使用循环外,您还可以使用resize
添加N个新元素:
bugs.resize(bugs.size()+n);