1.STL(standard template library)-标准模板库
分为:容器、算法、迭代器(迭代器连接容器与算法)
也分为六大组件:容器(存放数据)、算法(拷贝、遍历...)、迭代器、仿函数、适配器(配接器)、空间配置器
每个容器都有自己专属的迭代器,迭代器类似于指针操作
2.vector容器存放内置数据类型的三种遍历方法
#include<iostream>
#include<vector>
using namespace std;
void test01()
{
vector<int> v;
v.pushback(10);
v.pushback(20);
v.pushback(30);
v.pushback(40);
vector<int>::iterator itbegin=v.begin();//指向容器的第一个元素
vector<int>::iterator itend=v.end();//指向容器最后一个元素的后一个位置
遍历1
while(itbegin!=itend)
{
cout<< *itbegin << endl;
itbegin ++;
}
遍历2
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<< * it <<endl;
}
遍历3
//添加声明
#include<algorithm>
void print(int i)
{
cout<< i <<endl;
}
for_ench(v.begin(),v.end();print);
3.vector容器存放自定数据类型
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class pangbojiazu
{
public:
pangbojiazu(string name,int age)
{
this->p_name=name;
this->p_age=age;
}
string p-name;
int p_age;
}
void test01()
{
vector<pangbojiazu>p;
pangbojiazu p1("庞万东", 50);
pangbojiazu p2("郭秀丽", 50);
pangbojiazu p3("庞博", 22);
p.push_back(p1);
p.push_back(p2);
p.push_back(p3);
for (vector<pangbojiazu>::iterator it = p.begin(); it != p.end(); it++)
{
cout << (*it).p_name<< (*it).p_age << endl;
}
}
4.vector容器存放自定数据类型(指针)
void test02()
{
vector<pangbojiazu*>p;
pangbojiazu p1("庞万东", 50);
pangbojiazu p2("郭秀丽", 50);
pangbojiazu p3("庞博", 22);
p.push_back(&p1);
p.push_back(&p2);
p.push_back(&p3);
for (vector<pangbojiazu *>::iterator it = p.begin(); it != p.end(); it++)
{
cout << (*it)->p_name << (*it)->p_age << endl;
}
}