问题标题是不言自明的。我有一个需要动态大小的数组的运行循环。但我确实知道该大小的最大值将是,所以如果需要,我可以将其最大化而不是动态调整大小。
这是我的代码,我知道就可移植性而言,clock_t 可能不是计时的最佳选择,但 clock_t 提供的准确性很差。
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <ctime>
#define TEST_SIZE 1000000
using namespace std;
int main(int argc, char *argv[])
{
int* arrayPtr = NULL;
int array[TEST_SIZE];
int it = 0;
clock_t begin, end;
begin = clock();
memset(array, 0, sizeof(int) * TEST_SIZE);
end = clock();
cout << "Time to memset: "<< end - begin << endl;
begin = clock();
fill(array, array + TEST_SIZE, 0);
end = clock();
cout << "Time to fill: "<< end - begin << endl;
begin = clock();
for ( it = 0 ; it < TEST_SIZE ; ++ it ) array[it] = 0;
end = clock();
cout << "Time to for: "<< end - begin << endl;
}
这是我的结果:
Time to memset: 1590
Time to fill: 2334
Time to for: 2371
既然我知道 new & delete 现在会将数组清零,有没有比这些更快的方法?
请帮我!