如何在C++中初始化对象的向量
How can I initialize a vector of objects in C++?
给定以下代码:
vector<Worker> allWorkers;
allWorkers.resize(10);
for(int i=0; i<allWorkers.size(); i++){
allWorkers.push_back(Worker());
}
上面的代码不起作用。我想要的只是用 Worker 类型的对象填充向量。我该怎么做?
以下任何一个都可以工作:
vector<Worker> allWorkers;
int numberOfWorkersToAdd = 100; // put whatever number you want here
for(int i=0; i<numberOfWorkersToAdd; i++){
allWorkers.push_back(Worker());
}
或者:
vector<Worker> allWorkers;
int numberOfWorkersToAdd = 100; // put whatever number you want here
allWorkers.resize(numberOfWorkersToAdd);
根据您的用例,可能还有其他选项。
您的程序确实会向allWorkers
添加任何对象,因为allWorkers
是以下之后的空向量:
vector<Worker> allWorkers;
用
size_t size = <some size>;
vector<Worker> allWorkers(size);
应该这样做。
你在第一行创建一个空向量。
在 for() 循环中,您正在迭代,直到达到向量列表的大小。在这种情况下,大小为 0,这意味着永远不会发生迭代。
我会首先找到一种方法来计算您有多少 Worker 对象,并将该大小用作循环约束。
或者
你可以写 auto allWorkers = vector<Worker>(100,Worker());
其中 100 是工人的数量。
相关文章:
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 从多个源构造一个对象,包括一个对象向量
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- 对象 C++ 向量的 STL 容器
- 初始化C++中的对象向量
- 从自定义类获取对象向量中的 max 元素
- 如何在 c++ 中打印存档中的对象向量
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 尝试重载输出运算符时,我无法遍历对象向量
- 如何在C++中打印对象向量的内容
- 打印出对象向量中的每个元素C++
- 在 c++ 的构造函数中分配对象向量时出错
- 遍历对象向量,并找到与从文本文件中提取的对象匹配的变量
- 对象向量是否在堆或堆栈上分配C++?
- 基于不同字段的对象向量的排序功能
- 有没有一种简单的方法可以在对象向量上调用构造函数?
- 用rapidjson读取子对象向量
- 尝试使用比较运算符对对象向量进行排序
- 如何用对象向量重载 cin(>>)
- 如何将某个元素从shared_ptr擦除到对象向量?