为什么 range-v3 中不能对范围进行排序?

2023-12-06

使用 Range-v3(版本 0.10.0)库,我尝试从 std::vector 构造一个范围,将其转换为另一个范围,最后对该范围进行排序。我预计排序步骤会产生另一个我稍后可以使用的范围。但我能想到的最好的办法是:

std::vector<std::string> const input { "2", "3", "1" };
using namespace ranges;
std::vector<int> output = input
    | views::transform([](std::string s) { return std::stoi(s); })
    | to<std::vector>()
    | actions::sort

注意使用to<std::vector>()在变换步骤之后和排序步骤之前。这似乎分配了一个新的std::vector当我想要的只是排序时range转换步骤产生的。

为什么没有view::sort?它非常适合上述范围的组成。


转换后的范围只是一个视图,随着视图的迭代,元素一次生成一个。它无法排序,因为没有地方可以存储排序后的元素。假设的实现也效率低下,因为每次需要进行排序比较时都必须转换每个元素。

您的解决方案是将转换后的元素存储在向量中然后对它们进行排序是正确的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 range-v3 中不能对范围进行排序? 的相关文章

随机推荐

  • 谷歌地图只加载了一半

    查看上面的图片并尝试 URL gt http domainsoutlook com s site stackoverflow com html并转到服务器信息选项卡 我注意到的荒谬之处是 如果我加载http domainsoutlook c
  • 仅在一台机器上出现 HTML 对齐问题(均为 IE8)

    我有以下 HTML 和 CSS 代码 一机在IE8下运行良好 但在第二台机器上与 IE8 不一致 为了纠正它需要改变什么 注意 未对齐是针对 Logout 文本 注 图像尺寸为214 X 57 注意 两个系统都具有相同的分辨率和 100 缩
  • 在 D3 中加载 TopoJSON 文件时的随机行

    我正在尝试显示意大利制图形状文件 例如这个 使用D3 js 我可以加载 Zip 文件地图塑造者 查看地图 将其简化并导出为 TopoJSON 我可以在 MapShaper 中加载 TopoJSON 它看起来仍然没问题 但是当我尝试使用 D3
  • 如何用Swing制作画布?

    我正在尝试用 Java 制作一个绘画编辑器 其中有一个工具栏 其中包含我想要粘贴到画布中的对象 我使用 Swing 组件来制作 GUI 但是当我寻找制作画布的方法时 我只找到了 AWT 中的类画布 有没有办法用Swing制作类似canvas
  • 如何通过 eclipse 在本地集群/模式下调试 Apache Storm

    使用以下问答 我设法通过 Apache Storm 集群 本地运行 上的 eclipse 启用调试 如何在 Eclipse 中调试 Apache Storm My conf storm yaml有以下行可以在工作节点上启用调试 worker
  • 如何(尝试)将单个字符串解析为“DD/MM/YYYY”格式的日期时间? (VB.Net)

    如何 尝试 将单个字符串解析为 DD MM YYYY 格式的日期时间 VB Net 例如 我使用输入字符串 30 12 1999 1999 年 12 月 30 日 如何 尝试 将其解析为 DateTime 尝试这个 Dim date As
  • 双缓冲 JFrame

    当我开发 2D 游戏时 我阅读了很多有关双缓冲的内容 我遇到过许多不同的实施策略 但不确定双缓冲如何适合我创建游戏窗口的方式 例如 我遇到的一篇文章 http content gpwiki org index php Java Tutori
  • 在Java中实例化泛型类[重复]

    这个问题在这里已经有答案了 我知道 Java 泛型比 Nets 稍逊一筹 我有一个通用类Foo
  • Tweepy 是否支持运行多个 Stream 来收集数据?

    例如 我想收集与三个关键字相关的数据 关键字1 keyword2 keyword3 我知道我可以使用以下方法一次性收集所有这些内容 set track keyword1 keyword2 keyword3 是否可以运行三个不同的 Pytho
  • 为什么这段使用随机字符串的代码会打印“hello world”?

    以下打印语句将打印 hello world 有人能解释一下吗 System out println randomString 229985452 randomString 147909649 And randomString 看起来像这样
  • 当 buildToolsVersion 从 22.0.1 更改为 23.0.1 时出现 ProcessException

    看到 ProcessException 这似乎是一个老问题 但在我的例子中 这个异常的原因是不同的 我正在尝试将compileSDKVersion从22移动到23 我还将buildToolsVersion从22 0 1更改为23 0 1 当
  • C 中的 ## 预处理器有什么用[重复]

    这个问题在这里已经有答案了 可能的重复 C 预处理器和串联 有人可以举例解释吗 它允许从它们的部分构造标识符 例如 define CLASS NAME name CLASS name 会扩大CLASS NAME alpha to CLASS
  • 函数中的 malloc 效果不佳

    我不明白为什么整件事不起作用 我只想做malloc在函数中func 当我从中返回时 malloc消失了 我明白了 检测到glibc test free 无效指针 0xb76ffff4 char p 使指针成为 main 的本地指针 您可以将
  • 在Javascript函数下调用php页面

    是否可以在Javascript函数下调用php页面 我有一个 javascript 函数 如果有人按 OKK 我想调用 php 页面 到目前为止 这是我的代码 function show confirm var r confirm Do Y
  • 使用 Jasmine 和 Karma 在 AngularJS 中依赖工厂进行单元测试失败

    我正在使用 Jasmine 来测试 AngularJS 工厂 我在测试具有依赖性的工厂时遇到困难 我已经包含了我正在测试的工厂的代码和测试代码 问题是我收到错误并且测试失败 这是我看到的错误 Chrome 33 0 1750 Mac OS
  • 在python中将拉丁字符串转换为unicode

    我正在使用 scrapy 我抓取了一些网站并将抓取页面中的项目存储到 json 文件中 但其中一些包含以下格式 l Holding it Together Fowler RV Trip S u00e9n u00e9gal Mali Nige
  • 从 System.Drawing.Bitmap 加载 WPF BitmapImage

    我有一个实例System Drawing Bitmap并希望以以下形式将其提供给我的 WPF 应用程序System Windows Media Imaging BitmapImage 最好的方法是什么 从 MemoryStream 加载它怎
  • 将 Oracle Sql 查询中的 sql 变量值返回到 .NET 代码

    在过去的几个小时里 我试图通过使用 ADO NET 的 NET 应用程序在 Oracle 数据库中做最简单的事情 至少对于 SQL SERVER 而言 这似乎是不可能的 对于 SQL SERVER 假设我有一个 SqlCommand 对象
  • FCM(Firebase 云消息传递)与 Windows Phone

    我已通读文档 但我只是想仔细检查一下我是否遗漏了一些内容 我们是否确实无法在 Windows Phone 上使用 FCM RTFM 我知道 None
  • 为什么 range-v3 中不能对范围进行排序?

    使用 Range v3 版本 0 10 0 库 我尝试从 std vector 构造一个范围 将其转换为另一个范围 最后对该范围进行排序 我预计排序步骤会产生另一个我稍后可以使用的范围 但我能想到的最好的办法是 std vector