手机网站幻灯片,安装了wordpress程序,大朗网站制作,北京模板建站公司天上月#xff0c;人间月#xff0c;负笈求学肩上月#xff0c;登高凭栏眼中月#xff0c;竹篮打水碎又圆。
山间风#xff0c;水边风#xff0c;御剑远游脚下风#xff0c;圣贤书斋翻书风#xff0c;风吹浮萍又相逢。 STL(Standard Template Library,标准模板库 ) 从…天上月人间月负笈求学肩上月登高凭栏眼中月竹篮打水碎又圆。
山间风水边风御剑远游脚下风圣贤书斋翻书风风吹浮萍又相逢。 STL(Standard Template Library,标准模板库 ) 从广义上 分为 : 容器 (container) 算法 (algorithm) 迭代器(iterator) 大体分为六大部件容器、算法、迭代器、仿函数、适配器配接器、空间配置器。 STL容器就是将运用 常见的数据结构实现出来 这些容器分为 序列式容器 和 关联式容器两种: 序列式容器:强调值的排序序列式容器中的每个元素均有固定的位置。 关联式容器:二叉树结构各元素之间没有严格的物理上的顺序关系。 算法分为: 质变算法 和 非质变算法。 质变算法是指运算过程中会更改区间内的元素的内容。例如拷贝替换删除等等 非质变算法是指运算过程中不会更改区间内的元素内容例如查找、计数、遍历、寻找极值等等。 迭代器是 容器和算法之间粘合剂提供一种方法使之能够依序寻访某个容器所含的各个元素而又无需暴露该容器的内部表示方式。 每个容器都有自己专属的迭代器 。迭代器使用非常类似于指针。 迭代器种类分为输入迭代器、输出迭代器、前向迭代器、双向迭代器常用、随机访问迭代器常用。 Vector容器 STL 中最常用的容器为 Vector 可以理解为数组。 #include iostream
#include string
using namespace std;
#include vector
#include algorithm
#include string
void MyPrint(int val)
{cout val endl;
}
void test01()
{vectorint v1;//创建vector容器存放数据类型为intv1.push_back(10);v1.push_back(20);v1.push_back(30);vectorint::iterator it1 v1.begin();//v.begin()迭代器指向容器的第一个元素vectorint::iterator it2 v1.end();//v.end()迭代器指向容器最后一个元素的下一个元素//第一种遍历容器内元素的方式for (vectorint::iterator i it1; i ! it2; i){cout *i endl;}//第二种遍历容器内元素的方式while (it1 ! it2){cout *it1 endl;it1;}//第三种遍历容器内元素的方式for_each(v1.begin(), v1.end(), MyPrint);//使用STL标准遍历算法,包含algorithm头文件
}
class Person
{
public:Person(string name, int age){m_name name;m_age age;}
public:string m_name;int m_age;
};void test02()
{vectorPerson v2;Person p1(张三三,10);Person p2(王一一,14);Person p3(周七七,16);v2.push_back(p1);v2.push_back(p2);v2.push_back(p3);for (vectorPerson::iterator vit1 v2.begin(); vit1 ! v2.end(); vit1){cout (*vit1).m_name (*vit1).m_age endl;}
}
void test03()
{//存放对象指针vectorPerson* v2;Person p1(张三三, 10);Person p2(王一一, 14);Person p3(周七七, 16);v2.push_back(p1);v2.push_back(p2);v2.push_back(p3);for (vectorPerson*::iterator vit1 v2.begin(); vit1 ! v2.end(); vit1){cout (*vit1)-m_name (*vit1)-m_age endl;}
}
void test04()
{//容器嵌套容器vectorvectorint v;vectorint v1;vectorint v2;vectorint v3;vectorint v4;for (int i 0; i 4; i){v1.push_back(i 1);v2.push_back(i 2);v3.push_back(i 3);v4.push_back(i 4);}//将小容器放进大容器v.push_back(v1);v.push_back(v2);v.push_back(v3);v.push_back(v4);for (vectorvectorint::iterator vit1 v.begin(); vit1 ! v.end(); vit1)//循环小容器{for (vectorint::iterator vit2 (*vit1).begin(); vit2 ! (*vit1).end(); vit2)//循环小容器内部元素{cout (*vit2) ;}cout endl;}
}
int main() {test01();test02();test03();test04();system(pause);return 0;
}