我在我的Obj-C ++中进行函数调用,它返回一个C ++浮点向量:
vector<float> mixedFrames = song.getMixedFrames();
这些帧用于音频播放,CoreAudio期望它们位于Float32
数组中,其定义如下:
Float32 *buffer = (Float32 *)ioData->mBuffers[channel].mData;
我的问题是将mixedFrames
复制到buffer
的最快方法。我应该循环遍历mixedFrames
并将每个值复制到buffer
还是有更快的方式来减少内存?
答案 0 :(得分:1)
内存布局相同,因此可能根本不需要复制;您只需使用mixedFrames.data( )
。
如果您出于某种原因确实需要制作副本,则可以使用memcpy
或std::copy
。