0

Obj-C ++で関数呼び出しを行っており、C++フロートベクトルを返します。

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

これらのフレームはオーディオ再生用であり、CoreAudioFloat32は次のように定義された配列内でそれらを想定しています。

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

私の質問は、にコピーmixedFramesする最速の方法bufferです。ループしてmixedFramesすべての値をにコピーするbuffer必要がありますか、それともメモリを節約するより高速な方法がありますか?

4

1 に答える 1

1

メモリレイアウトは同じであるため、コピーする必要がまったくない場合があります。単に使用できますmixedFrames.data( )

何らかの理由で実際にコピーを作成する必要がある場合は、memcpyまたはを使用できますstd::copy

于 2012-08-05T21:10:30.603 に答える