首页 > 其他分享 >01 | ranges的初步印象(新旧做法的对比)

01 | ranges的初步印象(新旧做法的对比)

时间:2023-04-23 11:25:22浏览次数:41  
标签:容器 01 views 视图 ranges range 新旧 求值

1.ranges::sort——给容器排序

在这之前我们需要采用 标准库的sort 算法并且需要传入两个迭代器。但是现在我们可以这样,使用 ranges 命名空间下的 sort 函数,仅需要传入一个容器的名字即可。

以下是涉及到的concepts

2.views的概念——给对象进行筛选、转换、复制

我们可以将一个 range (stl容器是一个range,严格来说是有begin()和end()函数的stl容器),经过管道符传给 容器适配器,我们就可以得到视图对象,该视图对象是可以惰性求值的,因此所占的空间要比另外开辟一块空间要少,可以想象视图是百叶窗,只让你看到了应该看到的东西。

比如:接下来,我们举一个例子,筛选年龄在18岁以下的人的年龄,并将其输出到屏幕。

如果我们不使用 range 和 view 的话,就可能是这样:

3.生成递增序列——views::iota 类似python 中的 range

当然,我们也可以写一个 range 来满足斐波那契数列的惰性求值
当然,我们也可以写一个简单的协程来实现惰性求值

4.std::erase——删除满足条件的元素

使用了 range 之后,我们可以这样

而不是用的话,我们就得用 erase 和 remove_if 的常规做法

5.常用的适配器——注意是views::xxx

标签:容器,01,views,视图,ranges,range,新旧,求值
From: https://www.cnblogs.com/mmxingye/p/17345912.html

相关文章

  • 016.压缩和解压指令
    指令  用法gzipgzip  用于压缩文件,只能将文件压缩为*.gz文件语法gzip    文件案例'将xiaoshuo.txt压缩为xiaoshuo.txt.gzgzipxiaoshuo.txt(压缩后xiaoshuo.txt文件将会变为xiaoshuo.txt.gz,xiaoshuo.txt会消失。注意备份)gunzipgunzip  ......
  • 面试题01
    //websocket的协议体/***WebSocket协议使用HTTP握手,建立WebSocket连接后,数据传输就由HTTP协议切换为独立的WebSocket协议。*协议体结构如下:*0123*0123456789012345678901234......
  • JOISC2019 题解
    通信题还没做。JOISC19D1T1試験(Examination)双log很简单。但是单log才是这题的本质。我们进行一些补集转换。我们能算的是什么?我们能算一条边在边界上的直角边平行于坐标轴的直角三角形数点,我们能算长方形数点。我们要算1的点数,那相当于2的点数减去3的点数再加......
  • 从0开始写三维“软”引擎.part1 - 2013.7.13 - David Rousset
    I’dtoliketosharewithyouhowI’velearnedtobuildwhat’sknownasa“3Dsoftengine”throughaseriesoftutorials.“Softwareengine”meansthatwewilluseonlytheCPUtobuilda3Dengineinanoldschoolway(rememberDoomonyour80386?).I......
  • 【HMS Core】视频编辑服务报错method not allowed 20124、Parameter error. Error: ap
    【关键字】视频编辑服务、报错 【问题背景】问题1:集成视频剪辑服务,在原子能力SDK的素材管理时,提示Parametererror.Error:appIdisinvalid.问题2:视频编辑sdkdemo的所有功能提示methodnotallowed20124,后台已申请动态照片、一键微笑、AI着色、一键动效、一键染发的功能......
  • 2010年湖南省对口高考真题
    一、选择题1、下列不是C语言合法标识符的是__________。A._124            B.124abc          C.sum124          D.a_124 2、若有如图1所示存储结构,且变量定义为structnode{intdata;structnode*next;}p,q,r;若要实现图2所示的存储结......
  • 【IT老齐001】单体架构升级问题
    【IT老齐001】单体架构升级问题不谈场景的架构设计都是耍流氓架构没有对不对,只有合不合适架构是宏观设计的标准框架是具体实现的规则架构是取舍的艺术场景举例系统面临大量文件读写影响服务器磁盘IO导致数据库查询高延迟初级解决方案Redis通过在内存中的高吞吐完......
  • SpringDay01-入门基础知识、Bean的配置(一)
    Spring(黑马)一、基础知识1.1传统JavaWeb的缺点传统的JavaWeb在实现某个主要的业务逻辑时需要做的事情:new一个实现类对象,然后通过对象调用某个主要的方法;开启事务、提交事务、回滚事务;在日志中记录修改数据;在日志中记录异常数据等。以上传统方法带来的问题:实现类与接......
  • VBA学习笔记901_代码留存
    只是为了记录一些跑过的代码,尽量加上注释,但有些非常简单,只是为了以后快速熟悉代码结构条件选择`最基本If逻辑表达式Then'如果逻辑表达式为真,则执行这里的语句Endif`加强版If逻辑表达式Then'如果逻辑表达式为真,则执行这里的语句Else'否则(即逻辑表达......
  • Succinctly 中文系列教程(二) 20220109 更新
    Succinctly.NET本地化教程零、简介一、从本地化开始二、日期和时间三、周数四、时区五、数字六、货币七、文本八、附录SuccinctlyLinux教程一、简介二、Linux目录结构三、命令行界面四、目录五、查看文件和目录详情六、权限七、查看和编辑文件八、删除、移动和重命名文件和目......