随心成长记9
初识STL(标准模板库)
1,作用:为了提高代码的复用性
2,STL的六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器
容器:各种数据结构,如vector,list,deque,set,map等,用来存放数据
算法:各种常用算法,如sort,find,for_each等
迭代器:容器与算法之间的胶合剂
仿函数:行为类似函数,可作为算法的某种策略
适配器:一种用来修饰容器或者仿函数或者迭代器接口的东西
空间配置器:负责空间的支配
3,容器,分为序列式容器:强调值得排序,容器中每个元素都有固定位置
关联式容器:二叉树结构,各元素之间没有严格的物理结构
4,算法,分为质变算法:在运算过程中会更改元素内容,如增删改等
非质变算法:在运算过程中不会更改元素内容,查等
5,迭代器,迭代器提供一种方法使之能够访问容器内元素,每个容器都有自己专属的迭代器,迭代器类似于指针
迭代器,分为输入,输出,向前,双向(常用),随机访问(常用)
------------------------------------------------------------------------------------------------------------------------------
1,vector容器
#include//使用vector容器需要包含此头文件
#include//使用STL标准库函数需要包含此头文件
void myprint(int val) {
cout << val << endl;
}
int main()
{
vector v;
v.push_back(10);//尾插法插入数据
v.push_back(20);
v.push_back(30);
v.push_back(40);
vector::iterator pbegin = v.begin();
vector::iterator pend = v.end();
//第一种遍历方式
/*while (pbegin != pend) {
cout << *pbegin << endl;
pbegin++;
}*/
//第二种遍历方式
/*for (vector::iterator it = v.begin(); it != v.end();it++) {
cout << *it << endl;
}*/
//第三种遍历方式
//使用STL提供的标准遍历算法 头文件 algorithm
for_each(v.begin(), v.end(), myprint);//我喜欢
}
2,string 容器
//string 容器四种初始化方式
int main()
{
//第一种
string str1 = "hello world";
cout << str1 << endl;
//第二种
const char* s1 = "hello world";
string str2(s1);
cout << str2 << endl;
//第三种
string str3(str2);
cout << str3 << endl;
//第四种
string str4(10, 'a');
cout << str4 << endl;
}