在std::string中,有个接口是rbegin()和rend(),分别表示string字符串的倒数第一个字符和正数第一个字符;

rbegin():表示string字符串的倒数第一个字符

rend():表示string字符串的正数第一个字符

分为普通的iterator和const iterator两种:

reverse_iterator rbegin() noexcept;

const_reverse_iterator rbegin() const noexcept;

#include <string>
#include <iostream>using namespace std;std::string reverse(const string& str) {std::string rev;if (0 == str.size() || 1 == str.size()) {return str;}// 逆序输出str中的每个元素for (auto it = str.rbegin(); it != str.rend(); ++it) {rev.push_back(*it);}return rev;
}int main() {std::string str("abcdef");std::cout << "str=" << str << std::endl;std::string rev = reverse(str);std::cout << "rev=" << rev << std::endl;return 0;
}

结果:

此倒叙遍历的iterator提供了一种逆序输出的情况。

除了string有反向迭代器之外,vector也有反向迭代器。

std::string中的反向迭代器rbegin()和rend()相关推荐

  1. 【C++】STL中 list 反向迭代器的模拟实现

    在上篇文章实现了 list 后,我们实现了其对应的迭代器,但是对于 list,还有一个反向迭代器我们呢没有实现,但是反向迭代器不仅仅可以在 list 中使用,在 vector 中我们进行适配,同样也可 ...

  2. std::string中的find_first_of()和find_last_of()函数

    编程语言: c++/linux 在std::string中,有时需要找到一个string中最后一个或者第一个以某个特定的字符开始的位置或者下标,这时就需要使用find_first_of()和find_ ...

  3. C++中string类下的begin,end,rbegin,rend的用法

    C++ primer (中文版第四版)第273页 9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示.这两个迭代器通常用于标 ...

  4. 反向迭代器(rbegin,rend)

    C++ primer (中文版第四版)第273页 9.3.2 begin和end成员 begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示.这两个迭代器通常用于标 ...

  5. C++中std::string与C-String字符数组的互相转换

    C语言中只有字符数组这一说法,没有C++专门封装的字符串类std::string.而字符数组C-String以\0作为结束符.std::string其实还是存储了C-String这个指针,只不过不同的 ...

  6. Vector反向迭代器使用

    反向迭代器 1 反向迭代器其实没什么特殊的,他只是在遍历的方向上和普通迭代器不通而已:每一个容器里面都有Iterator(迭代器),可以从容器的begin位置到end-1位置,通过++来遍历.同样也有 ...

  7. 【C++】迭代器、反向迭代器详解

    参考: http://c.biancheng.net/view/338.html https://blog.csdn.net/kjing/article/details/6936325 https:/ ...

  8. C++迭代器之'反向迭代器'

    反向迭代器(Reverse Iterator)是普通迭代器的适配器,通过重新定义自增和自减操作,以达到按反序遍历元素的目的.如果在标准算法库中用反向迭代器来代替普通的迭代器,那么运行结果与正常情况下相 ...

  9. C++ [STL容器反向迭代器]

    本文已收录至<C++语言和高级数据结构>专栏! 作者:ARMCSKGT STL容器反向迭代器 前言 正文 适配器 反向迭代器 反向迭代器框架 默认成员函数 反向迭代器的遍历 反向迭代器的比 ...

最新文章

  1. JS判断数组里面是否包含指定的数
  2. JAVA---------华为机试------------提取不重复的整数
  3. logback1.1.11日志无法自动删除
  4. vundle按照YouComplete
  5. 5938. 找出数组排序后的目标下标
  6. java list 截取_Java常用代码汇总,建议背会
  7. golang mysql条件查询_mysql – 将变量传递给GoLang查询
  8. python判断ip能否ping通_python 检查IP是否能ping通,并且分别导入两个文件
  9. kernelchina.org内核研究
  10. 《Android开发偶遇有趣算法问题》---获得地图方圆r米内的一个随机坐标点(求单位圆内随机点)
  11. 【计算机毕业设计】基于微信小程序的图书馆座位预约系统
  12. Linux添加环境变量,以配置MySQL环境怕变量为例
  13. 通过ELO机制衡量各类对弈活动水平
  14. FPGA中利用ICAP原语实现Multiboot功能-总结篇
  15. 【个人学习笔记】泛函分析-度量空间(一)——定义与例子
  16. 使用计算机打印资料时需要安装打印机驱动,安装打印机驱动时提示确认打印机已连接的问题分析及解决办法...
  17. vipkid少儿英语怎么样?孩子学完三个月课程后,结果。。。。。。
  18. 专科学计算机的学校哪个好,计算机专业大学排名专科生学计算机专业好吗
  19. python浮点数比较大小_浮点数的相等比较
  20. python下载文件损坏_四种方法 恢复损坏的Excel文档

热门文章

  1. Hadoop集群(四) Hadoop升级
  2. Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)
  3. HashMap vs ConcurrentHashMap — 示例及Iterator探秘
  4. SQL Server 视图设计器
  5. Servlet与JSP间的传值问题
  6. SQL Server2008R2查询数据库的物理路径
  7. Android 自定义View以及ValueAnimator学习
  8. 转换文档参数_明明2秒可以搞定Word、Excel相互转换,你却用了半小时!真亏了...
  9. bat 发送post请求_get post 请求
  10. springmvc视图解析器_SpringMVC视图及REST风格