gpt4 book ai didi

具有可选属性的 C++ 类

转载 作者:行者123 更新时间:2023-11-28 06:27:58 24 4
gpt4 key购买 nike

我正在编写一个图形库,例如,我有一个用于 Edge 的特殊类。这个类除了源 (Vertex) 和目标 (Vertex) 之外还有一些属性,例如权重 (double)、可靠性 (double)、延迟 (double)、存在 (double) 等。

然而,我并不总是需要使用所有这些属性,我希望通过不必指定它们来节省内存。有没有什么标准的方法可以实现这一目标,而不是定义一个具有核心属性的基类,然后定义具有或不具有这些属性的子类?我问是因为我不想在任何给定时间根据我需要的属性拥有成倍增加的可能子类。

最佳答案

如果属性只有几个(比如少于 20 个),您最好将它们包含在您的类中并在它们不存在时将它们设置为 NAN。无论如何,每个属性只有 8 个字节。

如果您有很多属性但大多数对象只有几个,您可以将它们存储在 map<Property, double> 中。其中 Property是所有可能属性的枚举。如果您非常关心紧凑型存储,最好将它们存储在 array<pair<Property, double>, N> 中相反,假设您有一些最大数量的属性 (N)。

关于具有可选属性的 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188343/

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