1、STL六大组件:
- 容器:各种数据结构,如vector,list,deque,set,map等,用来存放数据。
- 算法:各种常用的算法,如sort,find,copy,for_each等。
- 迭代器:扮演了容器和算法之间的胶合剂。
- 仿函数:行为类似函数,可作为算法的某种策略。
- 适配器(配接器):一种用来修饰容器或者仿函数或迭代器接口的东西。
- 空间配置器:负责空间的配置与管理。
2、简单操作容器算法迭代器
#include<iostream>
#include<cmath>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
void print(int x)
{
cout<<x<<endl;
}
int main()
{
vector<int>a;
a.push_back(10);
a.push_back(20);
a.push_back(30);
a.push_back(40);
a.push_back(50);
//第一种遍历
vector<int>::iterator itBegin=a.begin();//起始迭代器,指向容器中第一个元素
vector<int>::iterator itEnd=a.end();//结束迭代器,指向容器中最后一个元素的下一个位置
while(itBegin!=itEnd)
{
cout<<*itBegin<<endl;
itBegin++;
}
//第二种遍历
for(vector<int>::iterator it=a.begin();it!=a.end();it++)
cout<<*it<<endl;
//第三种遍历
for_each(a.begin(),a.end(),print);
return 0;
}
3.容器通用函数:
- .size() 容器内元素的个数,无符号整型
- .capacity 容器的容量,总是大于等于大小
- .empty() 判断容器是否为空,返回一个bool值
- .front() 返回容器的第一个元素
- .back() 返回容器最后一个元素
- .begin() 指向容器第一个元素的指针(迭代器)
- .end() 指向容器最后一个元素的下一个位置的指针(迭代器)
- .swap(b) 交换两个容器的内容
- ::iterator 迭代器