[英]Memory aligned QVector().data()
我正在使用Qt5編寫程序,並且需要分配一個QVector <float>
,它的data()
指針對齊32個字節。
無論如何,我可以在不修改Qt庫本身的情況下做到這一點嗎?
我的代碼如下所示:
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 ++編譯器。
有兩種解決方案:
std::vector
和合適的分配器。 QVector
的數據有效負載分配有alignof(T)
。¹ QVector<__m256i>
或類似的東西,然后再進出reinterpret_cast
。 ¹並非完全正確,請參見http://thread.gmane.org/gmane.comp.lib.qt.devel/22326/focus=22596
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.