gpt4 book ai didi

c++ - 如何在类中创建和使用指向未知数量结构数组的指针?

转载 作者:太空宇宙 更新时间:2023-11-04 14:45:23 24 4
gpt4 key购买 nike

抱歉,标题有点乱......

我一直在玩弄 C++,致力于一个解析游戏(Kerbal Space Program)保存文件的项目,以便我可以修改它并最终通过网络发送它。我无法存储未知数量的船只和船员,所以我需要一个未知大小的数组。

这可能吗?我认为有一个指向数组的指针是可行的方法。

我有:

class SaveFileSystem 
{
string version;
string UT;
int activeVessel;
int numCrew;
??? Crews; // !!
int numVessels;
??? Vessels; // !!
}

Crews 和 Vessels 应该是结构数组:

struct Crew 
{
string name;
//Other stuff
};

struct Vessel
{

string name;
//Stuff
};

我猜我应该有这样的东西:

    this->Crews = new ???;
this->Vessels = new ???;

在我的构造函数中初始化数组,并尝试访问它:

this->Crews[0].name = "Ship Number One";

这有什么意义吗???我希望“???”包含一堆星号,例如“*struct (*)Crews”,但我没有真正的想法。我有正常的指针等等,但这有点让我头疼......我想访问上一个片段中的结构,但如果 C++ 不喜欢那样,我可以进行指针运算。

我研究过 vector ,但我对效率有一种不健康的痴迷,这让我很痛苦,因为你不知道它背后发生了什么。

最佳答案

使用 vector 。 vector 是一个标准的 C++ 类,它可以动态调整大小并带有它们的大小。使用 vector 你的类变成这样

class SaveFileSystem 
{
string version;
string UT;
int activeVessel;
vector<Crew> Crews;
vector<Vessel> Vessels;
}

您对 vector 的不健康痴迷是错误的。说真的,我怀疑它们是否比您可能编写的任何代码都低效。您是否认为为您的编译器编写 vector 的人不称职?

我看到你很乐意使用字符串。为什么您关于效率和不知道幕后发生的事情的论点不适用于字符串?这是完全相同的情况。

关于c++ - 如何在类中创建和使用指向未知数量结构数组的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343114/

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