Well, you could just time it yourself, you know. Like here...
double rndseq[10];
void fun_arr() {
double** a = new double* [10];
for (int i = 0; i < 10; i++) a[i] = new double[10];
for (int j = 0; j < 10; j++)
for (int k = 0; k < 10; k++) a[j][k] = rndseq[j];
for (int i = 0; i < 10; i++) delete[] a[i];
delete[] a;
}
void fun_vec() {
std::vector<std::vector<double> > a(10, std::vector<double>(10));
for (int j = 0; j < 10; j++)
for (int k = 0; k < 10; k++) a[j][k] = rndseq[j];
}
int main() {
using namespace std;
for (int i = 0; i < 10; i++) {
rndseq[i] = rand() % 10;
}
clock_t start;
double dur;
double avg = 0;
for (int k = 0; k < 10; k++) {
start = clock();
for (int i = 0; i < 100000; i++) fun_arr();
dur = (clock() - start) / (double)CLOCKS_PER_SEC;
cout << "array time elapsed: " << dur << endl;
avg+=dur;
}
cout << "average: " << avg/10 << endl;
avg = 0;
for (int k = 0; k < 10; k++) {
start = clock();
for (int i = 0; i < 100000; i++) fun_vec();
dur = (clock() - start) / (double)CLOCKS_PER_SEC;
cout << "vector time elapsed: " << dur << endl;
avg+=dur;
}
cout << "average: " << avg/10 << endl;
return 0;
}
Output:
array time elapsed: 0.112312
array time elapsed: 0.076629
array time elapsed: 0.064202
array time elapsed: 0.062892
array time elapsed: 0.062081
array time elapsed: 0.062174
array time elapsed: 0.062047
array time elapsed: 0.06191
array time elapsed: 0.062196
array time elapsed: 0.061323
average: 0.0687766
vector time elapsed: 0.273569
vector time elapsed: 0.277646
vector time elapsed: 0.276116
vector time elapsed: 0.27601
vector time elapsed: 0.275815
vector time elapsed: 0.277889
vector time elapsed: 0.277475
vector time elapsed: 0.275025
vector time elapsed: 0.275489
vector time elapsed: 0.274858
average: 0.275989