mmxingye

导航

2023年4月23日 #

03 | 写一个能产生斐波那契数列的range——惰性求值

摘要: 1.首先为了满足 range 概念的要求我们需要提供 begin() 和 end() 2.begin() 和 end() 返回的应该是迭代器,注意这个地方两种可以返回两种不同类型(c++17后即可) 3.为了满足迭代器 概念的要求我们提供5个 typedef,并根据 std::input_itera 阅读全文

posted @ 2023-04-23 11:32 独立树 阅读(17) 评论(0) 推荐(0) 编辑

02 | 产生0,1,2...的序列大致有几种方法

摘要: 1.写死的for循环 2.生成序列和打印序列分开(占据极大的内存) 3.用static来实现(缺点:引入了全局的状态) 4.用类来实现(缺点:编写类定义太麻烦) 5.使用 lambda 闭包init 6.使用协程 注意,此处的协程类是需要自己的实现的。 阅读全文

posted @ 2023-04-23 11:17 独立树 阅读(13) 评论(0) 推荐(0) 编辑

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

摘要: 1.ranges::sort——给容器排序 在这之前我们需要采用 标准库的sort 算法并且需要传入两个迭代器。但是现在我们可以这样,使用 ranges 命名空间下的 sort 函数,仅需要传入一个容器的名字即可。 以下是涉及到的concepts 2.views的概念——给对象进行筛选、转换、复制 阅读全文

posted @ 2023-04-23 11:11 独立树 阅读(36) 评论(0) 推荐(0) 编辑