Push_back类定义向量的函数

Push_back function for Class defined vector

本文关键字:向量 函数 定义 back Push      更新时间:2023-10-16

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

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

如果您尝试添加 3 个默认构造的 Bug,则需要调用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);