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

时间:2012-08-05 16:40:35

标签: c++ arrays vector floating-point objective-c++

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

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

这些帧用于音频播放,CoreAudio期望它们位于Float32数组中,其定义如下:

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

我的问题是将mixedFrames复制到buffer的最快方法。我应该循环遍历mixedFrames并将每个值复制到buffer还是有更快的方式来减少内存?

1 个答案:

答案 0 :(得分:1)

内存布局相同,因此可能根本不需要复制;您只需使用mixedFrames.data( )

如果您出于某种原因确实需要制作副本,则可以使用memcpystd::copy