- 论坛徽章:
- 0
|
我用自己的机子试了, 和lz 的结论完全相反
系统是mac os
代码:
1 #include<vector>
2 using namespace std;
3
4 int main()
5 {
6 vector<int> tv;
7 if(0)
8 {
9
10 tv.reserve(100000);
11 for(int i = 0; i < 10000; i++)
12 {
13 for(int j = 0; j < 100000; j++)
14 {
15 tv[j] = j;
16 }
17 }
18 }
19 else
20 {
21 for(int i = 0; i < 10000; i++)
22 {
23 for(int j = 0; j < 100000; j++)
24 {
25 tv.push_back(j);
26 }
27 // tv.resize(0);
28 tv.clear();
29 }
30
31 }
32
33 return 0;
34 }
用reserver 版本,计时是
real 0m7.171s
user 0m6.962s
sys 0m0.010s
用push_back版本是:
real 0m17.409s
user 0m17.342s
sys 0m0.014s
其中 27,28行是一样的效果 |
|