首页 > 其他分享 >反向迭代器的使用

反向迭代器的使用

时间:2023-06-02 16:04:55浏览次数:32  
标签:迭代 iterator iter element 反向 vec 使用 rend reverse

对一个vector反向迭代器的使用例子:

vector<int>::reverse_iterator r_iter;  
for (r_iter = vec.rbegin(); // binds r_iter to last element  
      r_iter != vec.rend(); // rend refers 1 before 1st element  
      ++r_iter) // decrements iterator one element  
    cout << *r_iter << endl; // prints 9,8,7,...0

用在sort函数上,可以实现从大到小排序:

// sorts vec in "normal" order  
sort(vec.begin(), vec.end());  
// sorts in reverse: puts smallest element at the end of vec  
sort(vec.rbegin(), vec.rend());

用在查找中,可以实现从后往前查找:

一个字符串有很多个句子组成,句子用逗号隔开,现在查找最后一个句子


// find last element in a comma-separated list  
string::reverse_iterator rcomma = find(line.rbegin(), line.rend(), ',');

现在将反向迭代器转换成正向迭代器来实现正序输出:


// ok: get a forward iterator and read to end of line  
 cout << string(rcomma.base(), line.end()) << endl;

使用的是reverse_iterator的base方法


标签:迭代,iterator,iter,element,反向,vec,使用,rend,reverse
From: https://blog.51cto.com/u_16131207/6403481

相关文章

  • Python基础之迭代器
    可迭代对象什么是迭代? 迭代的言外之意就是更新换代,每次更新都会依赖于上一次的结果什么又是可迭代对象呢? 就是内置方法中有__iter__()的都可以被称为可迭代对象。__name__:这种的属性__iter__:这种是方法""" __iter__() 双下划线开头的方......
  • 使用Hutool的@Alias注解和JSONUtil.toJsonStr()的问题记录
    表格如下: 定义类结构如下:  使用fastjson转换后的结果                                使用hutool的JSONUtil转换之后的结果      可以看到JSONUtil类转换之后格式并不是我们需要的类的字......
  • NVM的使用
    NVM的使用 前言使用nvm的原因:由于多个项目存在使用不同版本的node及npm环境:iview源码的gulp依赖的是nodev10taro依赖环境在nodev12及以上故存在不兼容现象,引入nvm解决node环境问题nvm的功能nvm全名node.jsversionmanagement,顾名思义是一个nodejs的版本管理工具......
  • 在外汇交易中使用EA交易有意义吗?Forexclub 一个准则给您答案
    在外汇交易中应用EA交易有意义吗??外汇交易者通常有2种相反的答案,经常争论的喋喋不休,今天Forexclub一个准则给您答案。有些外汇交易者认为有意义。有些外汇交易者认为把EA交易应用到细分市场还是不错的。外汇交易者可以非常谨慎的使用EA交易。通过Forexclub聊天得知,这些外汇交易......
  • python使用cx_Oracle连接timesten
    环境:OS:WindowsDB:18.1  1.配置环境变量TNS_ADMIN=C:\TimesTen\tt181_64\network\admin 2.创建tnsnames.ora文件在timesten安装目录下C:\TimesTen\tt181_64\network\admin\samples拷贝一个tnsnames.ora到C:\TimesTen\tt181_64\network\admin进行修改 3.修改tnsnames......
  • transformers入门使用
    transformers入门使用HuggingFace是一个开源社区,它提供了先进的NLP模型,数据集,以及其他工具。模型:https://huggingface.co/models数据集:https://huggingface.co/datasets主要的模型自然回归:GPT2,Trasnformer-XL,XLNet自编码:BERT,ALBERT,ROBERTa,ELECTRASto......
  • 迭代器和生成器
    一、迭代器(Iterator)1、可迭代对象(Iterable)存储了元素的一个容器对象,且容器中的元素可以通过“__iter__()”方法或“__getitem__()”方法访问。可迭代对象不能独立进行迭代,可通过“for…in”遍历来完成2、常见的可迭代对象字符串、列表、元组、字典、集合、文件3、迭代器对......
  • Oracle 游标使用全解
    --声明游标;CURSORcursor_nameISselect_statement--For循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare--类型定义cursorc_jobisselectempno,ename,job,salfromempwherejob='MANAGER';......
  • ​​拍照替换 IOS手机端安装使用教程​
    拍照替换IOS手机端安装使用教程拍照插件是一款自动替换拍照数据的插件,支持单张多张照片选择替换,作用于系统全局,所有调用拍照的APP均有效。功能使用简单,单张,多张图片选择,按音量键切换照片。一、适用机型及系统1、机型:除SE和XR之外单所有iphone机型,可越狱即可2、系统:支持12系统及以......
  • webrtc-streamer使用
    下载地址:https://github.com/mpromonet/webrtc-streamer/releases获取使用的所有api:webrtc-streamer的服务地址:192.168.1.8:8000查询所有api:http://192.168.1.8:8000/api/help["/api/addIceCandidate","/api/call","/api/createOffer",......