stl:标准模板库
容器: vector 头文件:<vector>
deque <deque>
list <list>
map <map> key---value
set <set> key
迭代器:泛化的指针 <iterator>
函数对象 <functional>
函数适配器
算法 <algorithm>
两个迭代器表示的一个区间[p1,p2);
示例程序:
#include "stdafx.h"
#include <iostream>
#include <functional>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
template <class T>
class addtwo
{
public:
T operator() (T a)
{
return a+2;
}
};
int double_m(int a)
{
return a*2;
}
int _tmain1(int argc, _TCHAR* argv[])
{
int a[] = {2,4,1,5,3};
vector<int>v;
v.resize(5); //分配5个空间大小
//对数组a的升序和降序排列,默认时为升序排列
sort(a,a+5);
sort(a,a+5,less<int>());
sort(a,a+5,greater<int>());
//对数组a中的元素操作并在屏幕中输出
transform(a,a+5,ostream_iterator<int>(cout," "),addtwo<int>());
cout<<endl;
transform(a,a+5,ostream_iterator<int>(cout," "),double_m);
cout<<endl;
//输入输出流迭代器:从键盘输入后ctrl+z 后回车输出函数处理后的元素
transform(istream_iterator<int>(cin),istream_iterator<int>(),ostream_iterator<int>(cout," "),double_m);
cout<<endl;
return 0;
}