2-STL初识
2-1STL基本概念
Stl(标准模板库)六大组件为容器,算法,迭代器,仿函数,适配器,空间配置器
STL 就是借助模板把常用的数据结构及其算法都实现了一遍,并且做到了数据结构和算法的分离。
2-2vector存放内置数据类型
Vector在初期学习可看做数组
#include <vector>
Vector<int> v; //创建容器
v.push_back(10); //向容器插入数据
v.push_back(20);
//通过迭代器访问容器中数据(在初期迭代器可看做指针)
法1:vector<int>::iterator itBegin=v.begin();
vector<int>::iterator itEnd=v.end();
while(…){…};//采用while循环将itBegin++遍历输出*itBegin
法2:直接采用for循环
For(vector<int>::iterator it=v.begin();it!=v.end;it++){
cout<<*it<<endl;
}
法3:利用STL提供的遍历算法
#include <algorithm>//标准算法头文件
Void print(int val){ cout << val << endl ; }//这里val的类型由你选择输入的数据决定
for_each( v.begin() , v.end() , print )//print为函数名
本质还是for循环;
2-3vector存放自定义数据类型
本质还是创建一个类,将类的多个对象存储在vector容器中进行操作。
2-4vector容器嵌套容器
vector<vector<int>> v;
v为大容器,在v中存储的是小容器
通过两重循环实现小容器内数据遍历。
外层的迭代器it解引用后为内层小容器vector<int> vit;
2-5string容器-构造函数
string本质是一个类,类内封装了char*,通过该指针管理字符串。其内也有许多功能的成员函数。
string是char*类型的容器
string构造函数的四种方法:
- string();//内部为空
- string(char *s);//传入字符串
- string(const string&str);//类似拷贝构造
- string(int n,char c);//使用n个字符c初始化