gpt4 book ai didi

c++ - 将结构中的结构指针成员存储到 vector 中的简便方法

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:36 27 4
gpt4 key购买 nike

我正在实现调度模拟。如果有人知道我将结构中的结构指针变量存储到 vector 中并打印出来以供检查的简单方法,我将不胜感激。

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

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

/*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;
}
}

======> 问题。我想将 int *Fixture_Type Struct_Order *Part 放入 Struct_Pallet 类型 vector 中,而不是数组。

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

最佳答案

您可以使用 std::vector,而不是使用指针并负责跟踪大小、分配内存、释放内存等。 ,它将为您处理所有这些复杂性:

#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;
};

这是一些使用您在 OP 中的代码构建的示例代码

Live Demo

int main()
{
int num_pallets = 0;
std::cin >> num_pallets;

std::vector<Pallet> pallets;
pallets.reserve(num_pallets);
for (int i = 0; i < num_pallets; ++i)
{
Pallet next_pallet;
next_pallet.pallet_no = i;

int num_fixture_types = 0;
std::cin >> num_fixture_types;

next_pallet.fixture_types.reserve(num_fixture_types);
for (int j = 0; j < num_fixture_types; j++)
{
int temp_fixture_type = 0;
std::cin >> temp_fixture_type;
next_pallet.fixture_types.push_back(temp_fixture_type);
}
pallets.push_back(std::move(next_pallet));
}

for (const Pallet& next_pallet : pallets)
{
std::cout << "Pallet: " << next_pallet.pallet_no << std::endl;
std::cout << "Fixture types:\n\t";
for (int fixture_type : next_pallet.fixture_types)
std::cout << fixture_type << " ";
std::cout << std::endl;
}
}

输入:

3
3 1 4 4
3 1 5 1
3 1 5 1

输出:

Pallet: 0
Fixture types:
1 4 4
Pallet: 1
Fixture types:
1 5 1
Pallet: 2
Fixture types:
1 5 1

关于c++ - 将结构中的结构指针成员存储到 vector 中的简便方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55692301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com