首先,容器List有sort()成员函数,可以进行排序;全局算法库里的sort函数是一个普通函数。
普通函数与成员函数相比,将容器与算法分开或者关系变的更加微弱,也就是低耦合。
迭代器类似指针,可以操作容器中的数据,降低容器和算法之间的关联。
迭代器有5种
1随机访问迭代器
2双向迭代器
3前向迭代器
4输出迭代器
5输入迭代器
1 ----->2-------->3--------->(4,5)
箭头左侧的迭代器不仅实现了箭头右侧迭代器的所有功能,还在其基础上增加了一些新的功能。
从左到右,功能越来越少。
原因:迭代器需要物尽其用
关联式容器:双向迭代器
无序:前向迭代器
vector,deque:随机迭代器
两种特殊的迭代器:输入输出流迭代器
将缓冲区输入输出流数据当成容器,缓冲区可以存数据。
ostream_iterator(ostream_type&stream,const Char*delim)
:一个参数为流对象,另一个参数传字符串
istream_iterator:
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
#include <algorithm>
using std::cout;
using std::endl;
using std::cin;
using std::copy;
using std::vector;
using std::string;
using std::ostream_iterator;
void test()
{
vector<int>vec={1,4,7,9,3,2,};//将vector里的元素复制到osi
ostream_iterator<int>osi(cout,"\n");
copy(vec.begin(),vec.end(),osi);
}
int main()
{
test();
std::cout << "结束" << std::endl;
return 0;
}
输出结果:
1
4
7
9
3
2
结束