检查 QByteArray 的大小总是返回 4 个字节,我假设由于 Qt 中隐式共享数据:
int n = 50; //or n = 100, 200
QByteArray arr(n,'a');
cout << sizeof(arr) << endl;
::getchar();
总是打印 4
如何估计 QByteArray 的实际内存占用?这个问题的动机是有效地存储大量 5 字节标识符 - 它们可以分别存储为 quint64 (每个使用 8 个字节,因此浪费了 3 个字节),或者每个作为 QByteArray - 但我不知道如何在后一种情况下估计开销....
我想使用这些标识符作为 QMap 的键,所以它们都应该有自己的结构——一个长的 QByteArray 不起作用......