私は次の状況を で解決しましたvector
が、年配の同僚の 1 人が議論の中で、配列を使用するとはるかに高速になると言っていました。
大量のオーディオ ファイルから 12 次元のベクトルを大量に (つまり、大量に!) 計算し、それらを処理のために保存する必要があります。計算を開始する前に、これらすべてのベクトルが本当に必要です。とにかく、オーディオがいくつあるかは予測できませんし、各オーディオから抽出されるベクトルの数も予測できません。そのため、ベクトルを動的に保持する構造が必要です。
そのため、各ベクトルに対して新しい double 配列を作成し、それをvector
.
私の同僚が本当に正しければ、保存用のベクトルの代わりに配列を使用して計算を強化できるかどうか、直面してテストしたいと思います。
vector<double*>* Features = new vector<double*>();
double* feature = new double[12];
// adding elements
Features->push_back(features);
動的に 2 次元配列を作成するには、行数を知る必要があります。
double* container = new double*[rows];
container[0] = new double[12];
// and so on..
すべてのオーディオを処理した後の行はわかっていますが、オーディオを 2 回処理したくありません。
これを解決して追加する方法について誰もが考えましたか、それともその方法では不可能なので、vector
独自の構造を使用するか作成する必要があります(ベクトルよりも遅いと想定されます)。