Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将结构中的结构指针成员存储到向量中的简单方法_C++_Vector_Visual Studio 2017 - Fatal编程技术网

C++ 将结构中的结构指针成员存储到向量中的简单方法

C++ 将结构中的结构指针成员存储到向量中的简单方法,c++,vector,visual-studio-2017,C++,Vector,Visual Studio 2017,我正在实施一个调度模拟。如果有人知道我一种简单的方法,可以将结构中的结构指针变量存储到向量中并打印出来供检查,我会非常感激 我知道如何将Input_Data放入数组p_LU[I].Fixture_Type[j],如下所示。但是我想将数组P_LU[i].Fixture_Type[j]中存储的值移动到向量 这是我的模拟代码的一部分 /*Input_Data 3 3 1 4 4 3 1 5 1 3 1 5 1 */ struct Struct_Order { int Part_No; int Du

我正在实施一个调度模拟。如果有人知道我一种简单的方法,可以将结构中的结构指针变量存储到向量中并打印出来供检查,我会非常感激

我知道如何将
Input_Data
放入数组
p_LU[I].Fixture_Type[j]
,如下所示。但是我想将数组
P_LU[i].Fixture_Type[j]
中存储的值移动到向量

这是我的模拟代码的一部分

/*Input_Data
3
3 1 4 4
3 1 5 1
3 1 5 1
*/

struct  Struct_Order {
int Part_No;
int Due_Date;
int Part_Type;
int Pallet;
};

struct Struct_Pallet {
int Pallet_No;
int *Fixture_Type;
Struct_Order *Part;
};



// pallets with fixture types at LU station
  P_LU = new Struct_Pallet[N_Pallet_LU];
  for (int i = 0; i < N_Pallet_LU; i++)
  {
     int N_Fixture_LU;
     fin >> N_Fixture_LU;

     P_LU[i].Pallet_No = i; 
     P_LU[i].Fixture_Type = new int[N_Fixture_LU];

        for (int j = 0; j < N_Fixture_LU; j++)
        {
           fin >> temp_fixture_type; 
           P_LU[i].Fixture_Type[j] = temp_fixture_type;
        }
}
/*输入数据
3.
3 1 4 4
3 1 5 1
3 1 5 1
*/
结构顺序{
int Part_No;
int到期日;
int Part_类型;
int托盘;
};
结构托盘{
国际货币联盟编号;
int*夹具类型;
结构顺序*部分;
};
//LU站带有固定装置类型的托盘
P_LU=新结构托盘[N_托盘\u LU];
对于(int i=0;i>N_Fixture_LU;
P_LU[i].托盘编号=i;
P_LU[i]。Fixture_Type=new int[N_Fixture_LU];
对于(int j=0;j>温度固定装置类型;
P_LU[i].夹具类型[j]=临时夹具类型;
}
}
====>问题。我想把
int*Fixture\u Type
Struct\u Order*零件
放在
Struct\u托盘
类型向量中,而不是数组中


我不知道我的意图是否实现了。如果您需要更多的解释,请给我留言。

您可以使用以下工具,而不是使用指针并承担跟踪大小、分配内存、释放内存等的责任,它将为您处理所有这些复杂性:

#include <vector>

struct Order {
    int part_no;
    int due_date;
    int part_type;
    int pallet;
};

struct Pallet {
    int pallet_no;
    std::vector<int> fixture_types;
    std::vector<Order> parts;
};

您不必使用指针,也不必承担跟踪大小、分配内存、释放内存等的责任,而是可以使用,这将为您处理所有这些复杂性:

#include <vector>

struct Order {
    int part_no;
    int due_date;
    int part_type;
    int pallet;
};

struct Pallet {
    int pallet_no;
    std::vector<int> fixture_types;
    std::vector<Order> parts;
};

我认为使用std::vector来代替所有这些指针是最简单的。。。但我无法打印出来检查。你能给我举个简单的例子吗?struct structpallel{int Pallet_No;std::vector Fixture_vec;std::vector Order_vec;}是的,就是这样。然后使用
emplace\u back
push\u back
将新元素添加到集合中。我编辑了评论:)谢谢。那我怎么打印出来呢?vector也是这样吗?我想用
std::vector
来代替所有这些指针是最容易的。所以我试着这样做。。。但我无法打印出来检查。你能给我举个简单的例子吗?struct structpallel{int Pallet_No;std::vector Fixture_vec;std::vector Order_vec;}是的,就是这样。然后使用
emplace\u back
push\u back
将新元素添加到集合中。我编辑了评论:)谢谢。那我怎么打印出来呢?向量也是这样吗?我完全按照你告诉我的方式解决了。这个方法简单实用,因为我的模拟器中有很多变量。你善意的解释对我帮助很大。谢谢!!:)@安吉尔·崔:我很高兴这有帮助。如果我的答案解决了你的问题,请勾选downvote按钮下方的绿色复选标记,将答案标记为已接受。我刚刚上传了一个关于std::vector parts的新问题。如何将结构订单类型向量插入到结构向量托盘中。如果你有时间,请看我的新问题。我完全按照你告诉我的方式解决了它。这个方法简单实用,因为我的模拟器中有很多变量。你善意的解释对我帮助很大。谢谢!!:)@安吉尔·崔:我很高兴这有帮助。如果我的答案解决了你的问题,请勾选downvote按钮下方的绿色复选标记,将答案标记为已接受。我刚刚上传了一个关于std::vector parts的新问题。如何将结构订单类型向量插入到结构向量托盘中。如果你有时间,请看我的新问题。
Pallet: 0
Fixture types:
    1 4 4 
Pallet: 1
Fixture types:
    1 5 1 
Pallet: 2
Fixture types:
    1 5 1