一.初识STL:
STL是C++编译器自带的系统模板库,这大大方便了我们去自定义模板,我们只要知道怎么用就可以了,而并不用去关心其内部实现过程。C++的内置STL可以分为六大类。
(1) 容器; (2) 迭代器; (3) 空间分配器; (4) 适配器; (5) 算法; (6) 仿函数。
二. 容器:
1. 标准模板库将容器分为三类:
(1) 序列式容器 (2) 关联式容器 (3) 容器适配器
2. vector容器:
参考程序:
#include <iostream>
#include<vector>
using namespace std;
void vectorInclude()
{
{
//几种容器初始化
int a[10]={1,2,3,4,5,6,7 };
vector<int> v1(a,a+4);
vector<int> v2(10,5);
vector<int> v3(v1);
for(int i=0;i<v1.size();i++)
{
cout<<v1[i]<<" ";
}
cout<<endl;
int a[10]={1,2,3,4,5,6,7 };
vector<int> v1(a,a+4);
vector<int> v2(10,5);
vector<int> v3(v1);
for(int i=0;i<v1.size();i++)
{
cout<<v1[i]<<" ";
}
cout<<endl;
for(int i=0;i<v2.size();i++)
{
cout<<v2[i]<<" ";
}
cout<<endl;
{
cout<<v2[i]<<" ";
}
cout<<endl;
for(int i=0;i<v3.size();i++)
{
cout<<v3[i]<<" ";
}
cout<<endl;
}
{
cout<<v3[i]<<" ";
}
cout<<endl;
}
void vectorSize()
{
vector<int>v1(10);
for(int i=0;i<v1.size();i++)
{
v1.at(i)=i+1;
}
v1.front()=100; //操作容器首元素;
v1.back()=200; // 操作容器尾元素;
for(int j=0;j<v1.size();j++)
{
cout<<v1.at(j)<<" ";
}
cout<<endl;
}
void vectorIterator()
{
vector<int> v(10);
for(int i=0;i<v.size();i++)
{
v[i]=i+1;
}
for(vector<int>::iterator it = v.begin();it != v.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
for(vector<int>::reverse_iterator rit = v.rbegin();rit != v.rend();rit++)
{
cout<<*rit<<" ";
}
cout<<endl;
}
vector<int> v(10);
for(int i=0;i<v.size();i++)
{
v[i]=i+1;
}
for(vector<int>::iterator it = v.begin();it != v.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
for(vector<int>::reverse_iterator rit = v.rbegin();rit != v.rend();rit++)
{
cout<<*rit<<" ";
}
cout<<endl;
}
int main()
{
vectorInclude();
vectorSize();
vectorIterator();
return 0;
}
{
vectorInclude();
vectorSize();
vectorIterator();
return 0;
}