比较代码如下:
#include<iostream>
#include<vector>
#include<ctime>
using namespace std;
int main(void)
{
int a[100000];
clock_t start=clock();
for (int j = 0; j < 100000; j++)
{
for (int i = 0; i < 100000; i++)
{
a[i] = i;
}
}
clock_t end = clock();
cout << "栈数组:" << double((end - start) / CLK_TCK) << endl;
int *b=new int[100000];
start = clock();
for (int j = 0; j < 100000; j++)
{
for (int i = 0; i < 100000; i++)
{
b[i] = i;
}
}
end = clock();
cout << "堆数组:" << double((end - start) / CLK_TCK) << endl;
vector<int>c(100000);
start = clock();
for (int j = 0; j < 100000; j++)
{
for (int i = 0; i < 100000; i++)
{
c[i] = i;
}
}
end = clock();
cout << "vector向量:" << double((end - start) / CLK_TCK) << endl;
}
比较结果:
比较结论:C++中从效率方面考虑,能用栈数组就不要new出来一个堆数组,能够使用数组就不要使用向量vector。