迭代器 iterator

首先,容器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
结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值