#include<iostream>
#include<vector>
using namespace std;
int main()
{
//这里相比较前面的,vector其实是个类模板,然后你vector<int>就是个模板类。
//vi就是个类对象,然后这个10就是个参数。它里面有两个很重要的东西,输出这个东西。
//这个size表示你压入的数量,capacity代表空间。你可以发现它的增长方式是一个以2的倍数增长的。
//所以这个vertor你会用的人效率会很高,你不会用的人效率会很低。就比如说有一个它是1024了,你加入1025了,它马上就会变成2048
//你就可以想象它占用多大的空间了。它底层肯定是malloc,所以它的效率会很低。
#if 0
size 1 capacity1
size 2 capacity2
size 3 capacity4
size 4 capacity4
size 5 capacity8
size 6 capacity8
size 7 capacity8
size 8 capacity8
size 9 capacity16
size 10 capacity16
#endif
vector<int> vi;
//reserve是预估的意思,你reserve(100)
//他就会事先给你reserve 100的空间
vi.reserve(100);
for(int i=0;i<10;i++)
{
vi.push_back(i);
cout<<"size "<<vi.size()<<'\t'<<"capacity"<<vi.capacity()<<endl;
}
//如果你在压如一个101,就变成200的空间了。
//用不完的内存请求归还
vi.shrink_to_fit();
cout<<vi.capacity()<<endl;
{
//这里要像这里一样,用个临时变量去清除内存,这样临时变量会被像销毁,你内存也就释放了
vector<int> v2;
vi.swap(v2);
cout<<vi.capacity()<<endl;
}
return 0;
}
C++之verctor
最新推荐文章于 2024-08-14 11:42:29 发布