我正在我的 Obj-C++ 中进行函数调用,它返回一个 C++ 浮点 vector :
vector<float> mixedFrames = song.getMixedFrames();
这些帧用于音频播放,CoreAudio 期望它们位于定义如下的 Float32
数组中:
Float32 *buffer = (Float32 *)ioData->mBuffers[channel].mData;
我的问题是将mixedFrames
复制到buffer
的最快方法是什么。我应该循环遍历 mixedFrames
并将每个值复制到 buffer
还是有更快的方法占用更少的内存?
最佳答案
内存布局相同,所以可能根本不需要复制;您可以简单地使用 mixedFrames.data( )
。
如果您出于某种原因确实需要制作拷贝,您可以简单地使用 memcpy
或 std::copy
。
关于c++ - 将 c++ vector<float> 复制到 Obj-C Float32 数组的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818165/