vector容器中的函数
22.容器中resize假如原来的元素很多,就从后面的删除,
24.#include "Utility.h"
template<typename T>
void printContainer(T _container)
{
for( T::iterator iter = _container.begin();
iter!=_container.end();
++iter)
{
cout<<(*iter)<<endl;
}
}
void main()
{
//---------与vector容器容量相关的函数-----------
vector<int> iVector1;
for ( int i = 0 ; i < 14 ; ++i )
iVector1.push_back(i);
//1. empty() : 容器是否为空
if( iVector1.empty() )
cout<<"iVector1容器为空"<<endl;
else
cout<<"iVector1容器不为空"<<endl;
//2. size() : 求容器中元素的个数
cout<<"iVector1中元素个数为:"<<iVector1.size()<<endl;
//3. capacity():
cout<<"iVector1在重新分配内存空间之前所能容纳的最多的元素数量为:"<<iVector1.capacity()<<endl;
//4. max_size() :
cout<<"iVector1中最多能够存储元素个数为:"<<iVector1.max_size()<<endl;
//5. reserve() : 指定当前容器容量为40个
iVector1.reserve(40);
cout<<"指定容量后:"<<iVector1.capacity()<<endl;
for (int i = 0 ; i < 27 ; ++i)
{
iVector1.push_back(i+14);
}
cout<<"补充元素后:"<<iVector1.capacity()<<endl;
//--------创建容器时直接指定容器的容量----------
vector<int>iVector2(10); //初始化容器具有10个0
vector<int>iVector3(10,2); //初始化容器具有10个2
int iArray4[10] = {1,2,3,4,5,6,7,8,9,10};
vector<int>iVector4(&iArray4[0],&iArray4[5]);
//vector容器的特点:支持随机存取
vector<int>iVector5(10);
for (int i= 0; i < 10 ; ++i)
{
iVector5[i] = i+1; //使用[]进行随机存取
}
for (int i= 0; i < 10 ; ++i)
{
if( i < iVector5.size() )
cout<<iVector5.at(i)<<endl; //使用at()函数进行随机存取
else
break;
}
//-------assign()函数----------
cout<<"-------assign()函数--------"<<endl;
vector<int> iVector6;
iVector6.assign(10,5);
printContainer(iVector6);
cout<<"-------assign()函数--------"<<endl;
iVector6.assign(2,8);
printContainer(iVector6);
cout<<"-------assign()函数--------"<<endl;
iVector6.assign(&iArray4[0],&iArray4[5]);
printContainer(iVector6);
if( !iVector6.empty() )
{
cout<<"iVector6第一个元素为:"<<iVector6.front()<<endl;
cout<<"iVector6最后一个元素为:"<<iVector6.back()<<endl;
}
//--------resize()函数---------
vector<int> iVector7(10,0);
iVector7.resize(5); //缩小
printContainer(iVector7);
cout<<"-------------"<<endl;
iVector7.resize(15,8);
printContainer(iVector7);
system("pause");
}
25.vector容器Deque容器中重载了[]可以直接用下标的形式进行访问。