我用 a 解决了以下情况vector
,但是我的一位年长的同事在讨论中告诉我,使用数组会快得多。
我从大量音频文件中计算出很多(我的意思是很多!)12 维向量,并且必须将它们存储起来进行处理。在开始计算之前,我真的需要所有这些向量。无论如何,我无法预测有多少音频,也无法预测从每个音频中提取了多少向量。因此,我需要一个结构来动态保存向量。
因此,我为每个向量创建一个新的双精度数组并将其推送到vector
.
我现在想面对和测试,如果我的同事真的是正确的,那么计算可以通过使用数组而不是向量来进行存储来提高。
vector<double*>* Features = new vector<double*>();
double* feature = new double[12];
// adding elements
Features->push_back(features);
据我所知,要动态创建二维数组,我需要知道行数。
double* container = new double*[rows];
container[0] = new double[12];
// and so on..
处理完所有音频后我知道行,我不想处理音频两次。
任何人都知道如何解决这个问题并附加它,或者以这种方式不可能,我应该使用任何一个vector
或创建自己的结构(假设可能比向量慢)。