QVector <float>或float * - Qt内存管理比本机C ++更好?</float>

时间:2014-05-30 21:39:48

标签: c++ qt memory optimization memory-management

在初始化庞大的数据结构时,我应该在内存管理点少的float*上选择QVector内存关键应用程序吗?

特别是,我需要在循环中写入多次迭代的结构。 operator[]的{​​{1}}访问者会进行写时复制。是否更多地使用QVector并访问其元素?

2 个答案:

答案 0 :(得分:2)

我宁愿使用QVectorstd::vector。由于QVector将浮点数存储在连续的内存区域中,因此它的执行速度几乎与float数组一样快。写时复制添加检查,但我认为它不相关,但如果重要std::vector不做COW。

使用QVector,benchark。如果它太慢,那么只能尝试优化。

答案 1 :(得分:0)

使用Windows PSAPI API分析内存分配,可能会发现QVector和float *之间的内存消耗存在可忽略的差异。