我是初学者,正在实现调度模拟。 我想将结构 vector (Order)插入托盘中的结构成员 vector (selectedParts)。
我知道如何将 int 类型 vector (fixtureTypes) 插入结构 Pallet 但我不知道如何将结构类型 vector (selectedParts) 插入 Pallet。 如果有人告诉我如何解决它,我将不胜感激。
int main()
{
std::vector<Pallet> pallets;
int tmpFixtureType;
for (int i = 0; i < 3; ++i)
{
Pallet pallet;
pallet.palletNo = i;
for (int j = 0; j < 3; ++j)
{
cin >> tmpFixtureType;
pallet.fixtureTypes.push_back(tmpFixtureType);
}
pallets.push_back(pallet); //end the "pallet.fixtureTypes.push_back" loop
}
for (int i = 0; i < 3; ++i) //and then input the "selectedParts" in pallets
{
Order tmpOrder;
tmpOrder.partNo = j;
tmpOrder.partType = j;
pallet.selectedParts.push_back(tmpOrder);
}
pallets.push_back(pallet);
}
最佳答案
不清楚您要做什么,除此之外,代码甚至无法按原样编译。我会提供一些建议,也许这对你有用。
- 遵循标准命名约定(我更喜欢驼峰命名)。确保区分类型和实例。
- 一开始不要担心为 vector 或移动对象保留空间。
注意我重构了你的代码(主要是重命名了变量和类型)
#include <iostream>
#include <vector>
struct Order {
int partNo;
int dueDate;
int partType;
int pallet;
};
struct Pallet {
int palletNo;
std::vector<int> fixtureTypes;
std::vector<Order> selectedParts;
};
int main()
{
std::vector<Pallet> pallets;
int tmpFixtureType;
for (int i = 0; i < 3; ++i)
{
Pallet pallet;
pallet.palletNo = i;
Order tmpOrder;
for (int j = 0; j < 3; ++j)
{
cin >> tmpFixtureType;
pallet.fixtureTypes.push_back(tmpFixtureType);
tmpOrder.partNo = j;
tmpOrder.partType = j;
pallet.selectedParts.push_back(tmpOrder);
}
pallets.push_back(pallet);
}
}
看看这是不是你想要的。你可以从那里开始。
关于c++ - 如何在C++中将结构类型 vector 数据输入到结构 vector 成员(嵌套结构 vector )中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55740204/