这个reverse_iterator曾经搞得我头大,其对应的函数也是那么的可不理解...现在一切都好了.

对于left_null>1->2->3->4->right_null,这样一个有4个元素(1,2,3,4)的链表.

1->2->3->4->尾

list<int>iteraotr c1=intList.begin()      // *c1=1;

list<int>iteraotr c2=intList.end()         // *c2=right_null;

尾<-1<-2<-3<-4

iterator++,则对于上边正向链表从左向右遍历

EG1:*(--c2)=4;

EG2:

for(c1=.begin(),c1!=.end();c1++)

       cout<<...1,2,3,4

list<int>reverse_iteraotr c1=intList.rbegin()      // *c1=4;   rbegin:相当于reverse_begin即反着看的头

list<int>reverse_iteraotr c1=intList.rend()         // *c1=left_null; rend相当于reverse_end即反着看的尾

reverse_iterator++,则对于上边正向链表从右向左遍历.

EG1:*(--c2)=1;

EG2:

for(c2=.rbegin();r2!=.rend();c2++)

相当于:4 3 2 1

for(c2=rend(),c2!=.rbegin().......)-->没有这种用法,因为不存在rend()指向的元素!!!

转自:http://blog.csdn.net/zdl1016/article/details/1517955

关于reverse_iterator的更多相关文章

  1. 如何在遍历中使用 iterator/reverse_iterator 删除元素

    如何在遍历中使用 iterator/reverse_iterator 删除元素 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循“署名-非商业用途-保持一致”创作公 ...

  2. std::reverse_iterator::base

    google chromium base MRU_Cache 支持反向erase iterator Erase(iterator pos) {  deletor_(pos->second);  ...

  3. std的find和reverse_iterator联合使用

    上代码: // test2013.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdlib.h> #in ...

  4. 浅谈reverse_iterator的base()函数

    非原创,原文链接:http://blog.csdn.net/shuchao/article/details/3705252 调用reverse_iterator的base成员函数可以产生"对 ...

  5. 在遍历中使用 iterator/reverse_iterator 进行 Erase 的使用方法

    在遍历中使用 iterator/reverse_iterator 进行 Erase 的使用方法 罗朝辉 (http://blog.csdn.net/kesalin/) 本文遵循"署名-非商业 ...

  6. [转]了解如何通过reverse_iterator的base得到iterator

    转自:http://blog.csdn.net/shuchao/article/details/3705252 调用reverse_iterator的base成员函数可以产生“对应的”iterator ...

  7. reverse_iterator和ostream_iterator

    每个容器都有反向迭代器(无需关联容器除外),reverse_iterator要和std::rbegin()以及std::end()配套使用,否则用了方向迭代器而不用rbegin()和rend()编译器 ...

  8. Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor

    Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor */--> div ...

  9. c++ list reverse_iterator

    #pragma warning(disable:4786) #include <set> #include <iostream> using namespace std ; t ...

随机推荐

  1. delphi 验证码识别(XE8源码)

    如题:源码下载

  2. FJUT第四周寒假作业[JL]最后的晚餐(动态规划)

    题目来源:http://210.34.193.66:8080/vj/Contest.jsp?cid=163#P4 [JL]最后的晚餐 TimeLimit:1000MS  MemoryLimit:100 ...

  3. CRM客户关系管理系统(四)

    kingadmin设计开发 4.4.根据list_display配置生成数据列表 (1)kingadmin/views.py (2)kingadmin/templates/kingadmin/tabl ...

  4. Zookeeper Api

    如何使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储 ...

  5. 给大家安利一个学习angular2的视频网站

    本文地址:http://blog.csdn.net/sushengmiyan 本文作者:苏生米沿 视频地址: https://egghead.io/courses/angular-2-fundamen ...

  6. 【SSH系列】深入浅出spring IOC中三种依赖注入方式

    spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...

  7. App安全(一) Android防止升级过程被劫持和换包

    文/ Tamic 地址/ http://blog.csdn.net/sk719887916/article/details/52233112 前言 APP 安全一直是开发者头痛的事情,越来越多的安全漏 ...

  8. Java基本语法-----java变量

    1.变量的概述 用于存储可变数据的容器. 2.变量存在的意义 计算机主要用于处理生活中的数据,由于生活中存在大量的可变数据,那么计算机就必须具备存储可变数据的能力. 比如: 1.时间每一秒都在发生变化 ...

  9. UNIX网络编程——原始套接字的魔力【续】

    如何从链路层直接发送数据帧 上一篇里面提到的是从链路层"收发"数据,该篇是从链路层发送数据帧. 上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑 ...

  10. 如何将Provisioning Profile安装到开发的Mac系统上

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...