【发布时间】:2021-12-29 07:46:49
【问题描述】:
我通过有线协议接收一些数据。我收到的其中一个数据包有一些表示复数的 int32_t 值。即 10 个复数以 20 个 int32_t 值(real,imag)的形式出现。
我需要将 int32_t 转换为 float 并将这些值复制到 vector<:complex>>。我不确定执行此操作的首选方法。
这可行,但肯定很丑陋且非常值得怀疑。这是一个 sudo 实时系统,我需要尽可能快的操作。
float coefBuffer[20];
std::transform(packet.coef,packet.coef+20,coefBuffer, [](int32_t x) { return (float)x;});
std::memcpy(complexFloatVector.data(),coefBuffer,sizeof(float)*20);
我尝试了多种类型的铸造,但无法提出更好的解决方案。
任何建议表示赞赏。
【问题讨论】:
-
这个部分你计时了吗?需要多长时间?
标签: c++ casting transform memcpy