给出以下代码:
vector<Worker> allWorkers;
allWorkers.resize(10);
for(int i=0; i<allWorkers.size(); i++){
allWorkers.push_back(Worker());
}
上面的代码不起作用。我想要的只是用向量类型的对象填充向量。我怎么能这样做?
答案 0 :(得分:1)
其中任何一个都可行:
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);
根据您的使用情况,可能还有其他选项。
答案 1 :(得分:0)
您的程序确实会向allWorkers
添加任何对象,因为allWorkers
是一个空向量:
vector<Worker> allWorkers;
使用
size_t size = <some size>;
vector<Worker> allWorkers(size);
应该这样做。
答案 2 :(得分:0)
您正在第一行创建一个空矢量。
在for()循环中,您将进行迭代,直到达到矢量列表的大小。在这种情况下,大小为0,这意味着迭代永远不会发生。
我首先会找到一种方法来计算你拥有多少个Worker对象,并使用该大小作为循环约束。
答案 3 :(得分:0)
或者你可以写
auto allWorkers = vector<Worker>(100,Worker());
其中100是工人的数量。