我是初学者,正在实施调度模拟。 我想将结构矢量(Order)插入到托盘中的结构成员矢量(selectedParts)中。
我知道如何将int类型向量(fixtureTypes)插入到结构托盘中,但是我不知道如何将结构类型向量(selectedParts)插入到托盘中。 如果有人让我知道如何解决它,我将不胜感激。
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);
}
答案 0 :(得分:2)
不清楚您要做什么,最重要的是,代码甚至无法按现状编译。我会提供一些建议,也许这对您有用。
请注意,我重构了您的代码(主要是重命名的变量和类型)
#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);
}
}
查看这是否是您想要的。您可以从那里去。
答案 1 :(得分:0)
您得到的错误是,pallet
作为名称在定义的范围({
至}
)之外没有意义。您有多个 Pallet
实例,您需要考虑要处理的是哪个。
将Order
人口移至定义pallet
的范围很简单。
int main()
{
std::vector<Pallet> pallets;
for (int i = 0; i < 3; ++i)
{
Pallet pallet;
pallet.palletNo = i;
for (int j = 0; j < 3; ++j)
{
int tmpFixtureType;
cin >> tmpFixtureType;
pallet.fixtureTypes.push_back(tmpFixtureType);
}
for (int i = 0; i < 3; ++i)
{
Order tmpOrder;
tmpOrder.partNo = j;
tmpOrder.partType = j;
pallet.selectedParts.push_back(tmpOrder);
}
pallets.push_back(pallet);
}
}