预留空间
功能描述:可以减少动态扩展容量时的扩展的次数 函数原型:
未预留空间前,查看动态扩展次数:
代码语言:javascript复制#include<iostream>
using namespace std;
#include<vector>
//vector之预留空间
void realApply()
{
//查看动态扩展容量的次数
//原理:每次扩展都会开辟空间更大的内容,地址会改变,里面每个元素地址也会改变
int num = 0;
int* p = NULL;
vector<int> v2;
for (int i = 0; i < 10000; i )
{
v2.push_back(i);
if (p != &v2[0])
{
p = &v2[0];
num ;
}
}
cout << "动态扩展的次数: " <<num<< endl;
}
int main()
{
realApply();
system("pause");
return 0;
}
预留空间后,查看动态扩展次数:
代码语言:javascript复制#include<iostream>
using namespace std;
#include<vector>
//vector之预留空间
void realApply()
{
//查看动态扩展容量的次数
//原理:每次扩展都会开辟空间更大的内容,地址会改变,里面每个元素地址也会改变
int num = 0;
int* p = NULL;
vector<int> v2;
//提前预留空间后
v2.reserve(10000);
for (int i = 0; i < 10000; i )
{
v2.push_back(i);
if (p != &v2[0])
{
p = &v2[0];
num ;
}
}
cout << "动态扩展的次数: " <<num<< endl;
}
int main()
{
realApply();
system("pause");
return 0;
}
如果数据量较大,可以提前用reserve预留空间,减少扩展次数,提高程序运作速度