c++ - C++对象与结构内存开销

原文 标签 c++ arrays memory struct

我需要为图像处理创建非常大的RGB值数组。对它们执行的实际操作很简单-只需正交投影即可看到两种颜色的相似程度-但是每一位都取决于内存。我正在考虑将图像存储为指向其中包含3个字符的结构的双指针,我认为这是内存效率最高的方式,但是我知道通常建议使用包装器类。问题在于,创建类与结构以及使用某种包装器与使用双指针相比,内存开销是多么微不足道。

最佳答案

两者之间绝对没有区别

class X
{
  public: 
     T1 x;
     T2 y;
     T3 z;
}




struct X
{
     T1 x;
     T2 y;
     T3 z;
};


如果您将虚拟函数添加到类中,是的,它将添加到存储中。但是classstruct之间没有其他区别(实际上,在struct中也可以包含虚拟成员-尽管通常通过具有成员函数和struct来区分class (非平凡的)构造函数,仅适用于类)。

关于c++ - C++对象与结构内存开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191113/

相关文章:

c++ - 如何修复基类中的内存分配错误?

c++ - std::reference_wrapper 到右值 lambda 如何工作?

c# - 创建一个列表,然后将其转换为数组

c++ - 正确的常量引用语法

c++ - 如何正确返回类成员数组作为返回参数

arrays - 用于确定排序数组中最大一组连续均匀间隔的数字值的算法?

linux - 平面内存模型和 protected 内存模型之间的区别?

c++ - 如何更改 malloc.c header 内容?

c++ - vector <vector <double >>是制作矩阵类的好方法吗?

c++ - 编译C++代码时为什么要编译+链接,而不是直接生成可执行文件