vector预留空间
功能描述:
减少vector在多态扩展容量时的扩展次数
函数原型:
reserve(int len);//容器预留len个元素长度,预留位置不初始化,元素不可访问。
当我们往vector容器中push_back大量的数,vector就会开辟多次空间,如果我们最开始就告诉vector要预留多少空间,vector就不用开辟那么多次空间了
利用reserve预留空间
代码如下:
#include <iostream>
using namespace std;
//vector预留空间
#include <vector>void test01() {vector<int >v;//利用reserve预留空间v.reserve(100000);int num = 0;//统计开辟次数int *p = NULL;for (int i = 0; i < 100000; i++) {v.push_back(i);if (p != &v[0]) {p = &v[0];num++;}}cout << "num = " << num << endl;}int main() {test01();return 0;
}
总结:
如果数据量较大,可以一开始利用reserve预留空间