位置

str.begin();指向字符串的第一个字符的位置
str.end();指向字符串的最后一个字符的后一个位置;
str.rbegin();指向字符串的最后一个字符的位置;
str.rend();指向第一个字符串的前一个位置;

移动方向

str.begin()++;向后面的位置移动(从首字符向尾字符移动);
str.rbegin()++;向前面的位置移动(从尾字符向首字符移动);

void test()
{string str = "1234";cout << *str.rbegin() << endl;cout << *str.begin() << endl;cout << *--str.rend() << endl;cout << *--str.end() << endl;}

迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。
迭代器:
设计模式—》元素访问的一种设计模式
所有容器都需要遵循相同的设计规范
所有的容器迭代器的使用方式都是相同的
怎么使用?
迭代器的使用方式和指针类似
设计规范:
1.begin迭代器:指向第一个元素的位置;
2.end迭代器:指向最后一个元素的末尾;
3.访问数据:通过解引用完成:*,->
4.迭代器移动:++移动到下一个元素的位置,移动到上一个元素的位置;
5.位置的判断:支持!=,==
有些容器具有反向迭代器
6.rbegin迭代器:指向最后一个元素的位置;
7.rend迭代器:指向第一个元素的前一个位置

begin end rbegin rend 迭代器相关推荐

  1. 【C++】STL——string的简单介绍、string类的访问和遍历、operator[] 、begin+ end begin 、rbegin + rend begin 、范围for

    文章目录 1.string类 1.1string类对象的访问及遍历操作 (1)operator[] (2)begin+ end begin (3)rbegin + rend begin (4)范围fo ...

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

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

  3. C++日记——Day5:迭代器、begin()/end(),rbegin()/rend()、迭代器失效、const_iterator

    迭代器简介 迭代器是一种遍历容器内元素的一种数据类型,这种数据类型感觉有点像指针,我们理解的时候可以理解为欸带起用来指向容器中某个元素. string,vector,[],很少用[],更常用的访问方式 ...

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

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

  5. C++ 容器中 begin()、cbegin()、rbegin()、crbegin

    总结: begin();end()正序迭代器 cbegin();cend() 返回 const 的begin();end() rbegin();rend() 逆序迭代器 crbegin();crend ...

  6. rbegin()函数与rend()函数。

    rbegin()函数与rend()函数. 在使用C++的STL时,经常会用到迭代器,那么不得不搞清楚里面的一些指针 begin(), end(), rbegin(), rend()之间的区别与联系,以 ...

  7. C++ primer 笔记(二)

    第9章   sequential container 顺序容器: vector 快速随机访问    list快速插入删除   deque双端,随机访问 C<T> c; C c(c2); C ...

  8. C++ Vector 汇总

    C++ vector erase函数 最近使用了顺序容器的删除元素操作,特此记录下该函数的注意事项. 在C++primer中对c.erase(p) 这样解释的:  c.erase(p)    删除迭代 ...

  9. C++中Set的使用

    /* #include <string> // 使用 string 类时须包含这个文件 #include <iostream> // 这个就加上去吧.c++的输入和输出. us ...

最新文章

  1. linux驱动之i2c子系统mpu6050设备驱动
  2. 李飞飞最新演讲全文:机器已能“看懂”图像和视频,但我们仍站在人工智能研究的起点
  3. EBS常用表_Dictionary
  4. html页面的header,HTML5教程 | HTML5 header和footer元素
  5. simplePagination API
  6. CoreData / MagicalRecord
  7. C++编程中的头文件包含问题
  8. 安卓mysql插入数据_【11-25求助】关于Android 的SQLite数据库插入数据报错问题
  9. 记住:永远不要在MySQL中使用UTF-8
  10. 幕享 for Mac(全平台全设备投屏共享软件)中文版
  11. FPGA串口波特率计算
  12. RadioButton下划线效果的使用
  13. 大一高数下册笔记整理_大学高等数学知识点整理(全)
  14. yaml-cpp保存标定文件-Node/Emitter
  15. 《算法技术手册》一1.3.5 融会贯通
  16. php数据库查询到数据以表格的形式展现出来
  17. 强大的嗅探工具--ettercap
  18. 128-Vue中的事件修饰符-阻止冒泡事件
  19. vivox27计算机功能,vivo x27 怎么连接电脑?
  20. < C++11新特性(部分学习)>——《C++高阶》

热门文章

  1. Lenet5网络结构
  2. 读书百客:《五美吟·红拂》赏析
  3. 第十六篇玩转【斗鱼直播APP】系列之内容简介
  4. oracle+exceeds,oracle 导入报错:field in data file exceeds maximum length
  5. R语言游程检验:使用runs.test函数对二值序列数据执行游程检验(检验序列是否是随机的)
  6. 猫和老鼠手游的python代码_猫和老鼠手游全部NPC功能和使用攻略
  7. 微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架
  8. PHP 模拟 砍价 流程
  9. 【成功励志故事】永远不能放弃!
  10. Java学习四阶段-07 服务注册中心Nacos