パラメータを取る関数がありfloat**
ます。type の変数に値がありますstd::vector<std::vector<float>>
。
一時的な割り当てなしでそのような変換を行うことは可能float*[]
ですか?
直接ではありませんが、「内部」ベクトルからデータをコピーする必要はありません。data()
代わりに、各内部ベクトルの属性へのポインターの配列を作成できます。
これはうまくいきます:
std::vector<std::vector<float>> source;
std::vector<float*> target(source.size());
for (int i = 0; i < source.size(); ++i)
target[i] = &*source[i].begin();
std::vector<>
ご覧のとおり、内側の sをコピーする必要はありませんが、外側を再作成する必要があります。Astd::vector<>
はそのメンバーの線形ストレージを保証するため (C 配列と互換性があることを意味します)、内部ベクトルに対して機能します。
2 つのループfloat**
で の値を入力して、手動で変換を行う必要があります。vector<vector<float> >
float*
いずれにせよ、インナーを割り当てる必要があります。