#include"iostream"
#include"list"
#include"algorithm"
#include"vector"
#include"algorithm"
using namespace std;
void fun(int &a){
cout<<a;
}
int main(){
/*
resize 函数在str中
要重新设置的大小为:b
当前的大小为:a
若:b<=a,则capacity=a
若:b>a,则capacity=15+16t>b,其中,S.t. min(t)
变化为:15 31 47 ...
*/
string str("abcdefg");
cout<<str.capacity()<<endl;//15
str.resize(5);
cout<<str.capacity()<<endl;//15
str.resize(20);
cout<<str.capacity()<<endl;//15,31,47,63
str.resize(48);
cout<<str.capacity()<<endl;//
cout<<"............."<<endl;
/*
resize 函数在vector中
要重新设置的大小为:b
当前的大小为:a
若:b<=a,则capacity=a
若:a<b<=1.5*a,则capacity=1.5*a
若:b>1.5*a,则capacity=b
*/
vector<int> vec1(6);
for(int i =0;i<vec1.size();i++){
vec1[i] = i;
}
for_each(vec1.begin(),vec1.end(),fun);
cout<<endl;
cout<<vec1.capacity()<<endl;
vec1.resize(10);
cout<<vec1.capacity()<<endl;
/*
resize 函数在list中
重新设置的大小为:b,则当前的大小为:b
*/
cout<<"............."<<endl;
list<int> lst(5);
for_each(lst.begin(),lst.end(),fun);
cout<<endl;
cout<<lst.size()<<endl;
lst.resize(20);
cout<<lst.size()<<endl;
lst.resize(10);
cout<<lst.size()<<endl;
system("pause");
return 0;
}