代码
#include<vector>
#include<iostream>
using namespace std;
int main() {
for(int i=0; i<100000; i++){
vector<int> a(100);
// cout << a.size()<<endl;
// cout << a.capacity()<<endl;
a.push_back(18);
// cout << a.size()<<endl;
// cout << a.capacity()<<endl;
}
}
#include<vector>
#include<iostream>
using namespace std;
int main() {
for(int i=0; i<100000; i++){
vector<int> a(101);
// cout << a.size()<<endl;
// cout << a.capacity()<<endl;
a[100] =18;
// cout << a.size()<<endl;
// cout << a.capacity()<<endl;
}
}
结果
前者耗时136ms左右,后面耗时30-60ms不等。
结论
考虑运行速度,尽量分配足够的vector空间,用push_back扩展很耗费时间。