c++ - 如何在C++中将结构类型 vector 数据输入到结构 vector 成员(嵌套结构 vector )中

标签 c++ vector visual-studio-2017

我是初学者,正在实现调度模拟。 我想将结构 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);

}

最佳答案

不清楚您要做什么,除此之外,代码甚至无法按原样编译。我会提供一些建议,也许这对你有用。

  1. 遵循标准命名约定(我更喜欢驼峰命名)。确保区分类型和实例。
  2. 一开始不要担心为 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/

相关文章:

c++ - 在扣除自动之前不能使用捕获的变量

c++ - 为什么 C++ WinInet 函数无法解析外部符号?

c++ - 优化动态大小 vector 的 vector 存储

c# - 错误 MSB4019 : The imported project "C:\Program Files\dotnet\sdk\1.0.3\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets" was not found

c# - CA1062 未在 .Net Standard 2.0 类库上进行评估

c++ - 从 fstream 读取整行,包括空格

c++ - 使用指向存储在 vector 中的对象的指针... C++

c++ - 在c++中的 vector 中推回多种类型的数据

c++ - 在 Vector c++ 中使用指针成员初始化对象

时间:2019-05-17 标签:c#mysqlwebhostingconnectionfailserver