#include "stdafx.h"
#include <vector>
#include<time.h>
#include <iostream>
using namespace std;
const static int gcount = 1000000;
int main()
{
vector<int> vecti;
clock_t startTime, endTime;
startTime = clock();//计时开始
for (int i=0;i<gcount;i++)
{
vecti.push_back(i);
}
endTime = clock();//计时结束
cout << "The run1 time is: " << (double)(endTime - startTime) << "ms" << endl;
startTime = clock();//计时开始
vecti.resize(gcount);
for (int i = 0; i < gcount; i++)
{
vecti[i]=i;
}
endTime = clock();//计时结束
cout << "The run2 time is: " << (double)(endTime - startTime) << "ms" << endl;
getchar();
return 0;
}
debug下:
The run time is :1203ms
The run1 time is:296ms
release 下:
The run time is :11ms
The run1 time is:1ms
解决方案:
1、编译release 版本
2、使用resize,变成数组的形式
这篇博客探讨了C++中向vector添加元素时,使用resize和push_back两种方法在Debug和Release模式下的性能差异。实验结果显示,在Release模式下,resize操作比连续push_back显著更快,强调了在考虑程序效率时应考虑编译模式和容器操作的选择。

1781

被折叠的 条评论
为什么被折叠?



