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

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


这些帧用于音频播放,CoreAudio希望它们在Float32数组中定义,该数组如下所示:

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


我的问题是将mixedFrames复制到buffer的最快方法。我应该只遍历mixedFrames并将每个值复制到buffer还是有更快的方法占用更少的内存?

最佳答案

内存布局相同,因此可能根本不需要复制。您可以简单地使用mixedFrames.data( )

如果实际上由于某种原因需要复制,则可以简单地使用memcpystd::copy

10-02 21:24