Push_back Class 定义向量的函数
Push_back function for Class defined vector
我有一个向量,它接收一个名为 Bug 的 class 值,它存储每个实例的质量和腿数。我在使用 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);
我有一个向量,它接收一个名为 Bug 的 class 值,它存储每个实例的质量和腿数。我在使用 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);