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

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

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

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

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

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

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

最佳答案

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

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

关于c++ - 将 c++ vector<float> 复制到 Obj-C Float32 数组的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818165/

相关文章:

vector - 在Unity3D中计算两个向量之间的实际角度

C++ 3d游戏开发

c++ - 在 C++ 中使用声明

C++ vector 指针问题/指向 vector 中对象的指针的 vector

c - 在多个数组中执行多重搜索的最佳方法

arrays - 用二维数组填充表格 View

java - 为什么在 Java 浮点比较中使用 Float.floatToIntBits()?

c++ - bst分割故障搜索

c++ - 如何在 Mac OSX 上的窗口客户端中获得真实的鼠标位置?

C 分配 500 个及更多长整型的数组