将 c++ 向量<float>复制到 Obj-C Float32 数组的最快方法

Fastest way to copy c++ vector<float> to Obj-C Float32 array

本文关键字:数组 Float32 方法 Obj-C 复制 向量 c++ lt float gt      更新时间:2023-10-16

我正在Obj-C++中进行函数调用,它返回C++浮点向量:

vector<float> mixedFrames = song.getMixedFrames();

这些帧用于音频播放,CoreAudio希望它们位于Float32阵列中,该阵列定义如下:

Float32 *buffer = (Float32 *)ioData->mBuffers[channel].mData;

我的问题是,将mixedFrames复制到buffer的最快方法是哪种。我应该循环通过mixedFrames并将每个值复制到buffer,还是有一种更快的方法可以占用更少的内存?

内存布局相同,因此可能根本不需要复制;您可以简单地使用CCD_ 6。

如果出于某种原因确实需要复制,可以简单地使用memcpystd::copy