1.STL基本概念
STL<Standard Template Library> 标准模板库。
三种类型:容器(contation)、算法(algorithm)、迭代器(iterator)
三者关系:迭代器是连接算法和容器的工具.
2.STL的六大组件:
········1.容器:是各种数据类型,例如(vector、list、deque等)用于存放数据。
········2.算法:常用算法如sort-find-copy-for_each等。使用时需要包含头文件
········3.迭代器:让算法与容器无缝链接。
········4.仿函数:做的事情类似函数,当然也可以作为实现算法的某种策略。
········5.适配器:修饰容器、仿函数、迭代器的玩意
········6.空间配置器:顾名思义。
3.三种遍历方式
方式一:
#include<vector> //容器的头文件
#include<iostream>
using namespace std;
//第一种遍历方式
void test()
{
//首先创建一个存放数据的容器,你可以看作它类似与一个数组
vector<int> v;
//给容器中插入数据:插入数据的函数是push_back();
v.push_back(12);
v.push_back(13);
v.push_back(14);
v.push_back(15);
v.push_back(16);
//通过迭代器访问容器,第一种方式
vector<int>::iterator aBegin = v.begin();//指向容器内第一个元素
vector<int>::iteartor aEnd = v.end(); //指向容器内最后一个元素的下一个位置。
//开始遍历数组
while(aBegin != aEnd)
{
cout<<*aBegine<<endl;
aBegin++;
}
}
int main()
{
test();
system("pause");
return 0;
}
方式二:
#include<iostream>
#include<vector>
using namespace std;
void test()
{
vector<int> v;
v.push_back(16);
v.push_back(17);
v.push_back(18);
v.push_back(19);
for(vector<int>::iteartor it = v.begin();it != v.end() ; i++)
{
cout<<*it<<endl;
}
}
int main
{
test();
system("pause");
return 0;
}
方式三:
#include<iostream>
#include<vector>//迭代器头文件
#include<algorithm>//标准算法头文件
using namespace std;
void myPrint(int val)
{
cout << val << endl;
}//创建打印函数
void test()
{
vector<int> v; //创建了一个vector的容器
//容器中插入数据
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
for_each(v.begin(), v.end(), myPrint);//利用算法for_each
}
int main()
{
test();
system("pause");
return 0;
}
总结:以上三种遍历方式均可采用,第二种我经常会用,因为看起来比较简单,读者酌情考虑。