我有一个存储 16 个 float 组的类。我使用浮点指针将它们存储为数组,因此我必须使用构造函数内的 new 运算符来初始化数组。我的问题是,直接将 16 个 float 的数组定义为类的一部分是否更有效/更好,或者我应该继续让类通过指针存储数据并在构造函数中调用 new ?
最佳答案
在内存管理方面,没有通用的“更好的实践”,因此您应该采取适合您的特定设计的方法。
如果您始终精确分配 16 个 float ,则将数组嵌入类中将减少对动态分配器的调用次数。当对象存储在自动存储器中时这可能会有所帮助,但在某些情况下它可能会有害。例如,如果您在自动存储中创建此类的大型数组,则嵌入数组会增加堆栈溢出的机会。
最好的方法是分析您的内存使用情况和时间安排,并查看分配这些数组是否会导致显着的速度减慢,或者是否会导致内存碎片的产生。如果当前的方案没有给您带来任何麻烦,则没有理由更换它。
关于c++ - 构造一个包含指针的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557847/