STL初识list,vector容器

时间:2022-11-13 04:19:23
#include <iostream>
#include <vector>//因为要使用vector类模板
#include <list>//因为要使用list类模板
using namespace std;

int main()
{
//容器类名 容器名
vector<int> vec;//先实例化模板类,再定义一个对象(即变量,也即容器名)
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);

//容器类名 迭代器(类似于指针)
vector<int>::iterator i;
for(i=vec.begin();i!=vec.end();i++)//范围为[,)
{
cout<<*i<<",";
}
cout<<endl;
vector<int>::const_reverse_iteratorj;//const类型的指针 不能 通过指针改变变量值
for(j=vec.rbegin();j!=vec.rend();j++)
{
cout<<*j<<",";
}
cout<<endl;
for(i=vec.begin();i!=vec.end();i++)//范围为[,)
{
*i=100;
}
for(i=vec.begin();i!=vec.end();i++)//范围为[,)
{
cout<<*i<<",";
}
cout<<endl<<"*******************************************"<<endl;
vector<int> v(100);//有点类似new int[100]
cout<<v[0]<<endl;
cout<<v[1]<<endl;
cout<<v.size()<<endl;
for(int i=0;i<v.size();i++)
cout<<v[i];
cout<<endl<<"********************************************"<<endl;
list<int> lis(10);
list<int>::iterator ii;
for(ii=lis.begin();ii!=lis.end();ii++)
cout<<*ii<<",";
/*
以下代码不行会报错,因为双向迭代器不支持 < []
for(ii=lis.begin();ii<lis.end();ii++)
cout<<*ii;
cout<<lis[0]<<endl;
*/
return 0;
}