首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存对齐QVector().data()

内存对齐QVector().data()
EN

Stack Overflow用户
提问于 2015-08-20 09:28:18
回答 1查看 422关注 0票数 2

我正在使用Qt5编写一个程序,我需要分配一个QVector <float>,使其data()指针32字节对齐。

我是否可以在不修改Qt库本身的情况下做到这一点?

我的代码如下所示:

代码语言:javascript
复制
QVector <float> vec;
vec.resize(n);
float *wricker_ptr = wricker.data(); // this should be 32-byte aligned
for (int i=0; i<n; i++)
{
    wricker_ptr[i] = /* some computed value */;
}

我正在使用英特尔的C++编译器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 10:35:29

有两种解决办法:

  1. 忘了它吧:使用std::vector和合适的分配器。QVector的数据有效载荷由alignof(T).¹分配。
  2. 32字节对齐具有SIMD处理的味道,因此您可以使用QVector<__m256i>或类似的和reinterpret_cast进出。

不完全正确,参见http://thread.gmane.org/gmane.comp.lib.qt.devel/22326/focus=22596

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32114519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档