在 C++ 中“stable_sort()ing”STL

2024-03-19

我认为问题标题足够清楚:is is possible to stable_sort() a std::list in C++?或者我必须将其转换为 std::vector 吗?

我问这个问题是因为我尝试了一个简单的示例,它似乎需要 RandomAccessIterators,而链表没有。所以,如何对 std::list() 进行稳定排序?

EDIT:给我一个错误的示例代码:

#include <list>
#include <algorithm>
// ...
list<int> the_list;
stable_sort(the_list.begin(), the_list.end());

g++ 给了我大约 30 行错误(太长而无法粘贴),其中一些涉及 RandomAccessIterators(以及名为 _merge_sort_loop 的东西)。这有点奇怪,因为我见过一些链接列表的合并排序实现,而且它们几乎是“顺序的”。


std::list::sort 已经稳定。标准第 23.2.24 节:“注释:稳定:保留等效元素的相对顺序。”

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

在 C++ 中“stable_sort()ing”STL 的相关文章

随机推荐

  • 使 div 始终停留在页面内容的底部,即使有滚动条

    我希望实现与以下问题相反的行为 CSS 将 Div 推到页面底部 https stackoverflow com questions 2140763 css push div to bottom of page 也就是说 当内容溢出到滚动条
  • 在浏览器中访问 HTTP/2 预告片

    当前是否有任何浏览器支持在 HTTP 2 响应中访问预告片 例如 最新的 Fetch API 规范提到预告片是通过 Response trailer 公开的 有支持该功能的浏览器吗 您可以在以下位置找到测试用例http wpt fyi fe
  • sed - 执行替换后从列出的值中删除最后一个逗号

    我在用着sed替换我的文件中的新行 n with 效果很好 但是在我的最后一项中 我不想要 我怎样才能删除这个 Example sed s n g myfile out gt myfile csv Output 1 2 3 4 5 6 那么
  • 提交 iOS 版本更新,无需重新上传屏幕截图和应用预览

    我想提交 iOS 应用程序的更新 但这似乎需要提交新版本 其中需要重新输入所有信息 屏幕截图 视频等 我找不到任何明确说明可以为已批准的现有版本单独提交新版本的内容 这可能吗 如果没有 有没有办法在 iTunesConnect 中复制所有先
  • 在 WordPress 中为头像图像添加类

    我一直在尝试使用 get avatar 在每个帖子下显示作者的头像在 WordPress 模板中使用应用类 但我找不到将 class pic 2 添加到 Gravatar 图像代码的方法 甚至找不到将 Gravatar 高度和宽度分别更改为
  • 如何将颜色资源 id 的 int 数组从 array.xml 传递到 SwipeRefreshLayout.setColorSchemeResources

    我已经让 Android 的 SwipeRefreshLayout 正常工作 并尝试自定义整个应用程序中所有拉动刷新的颜色 为了遵循 DRY 原则 我尝试将所需的颜色移动到 array xml 如下所示
  • 我们可以使用自己的应用程序实现放大手势吗?

    我需要使用我的 Android 应用程序实现放大手势 此信息的部分或全部仅适用于运行 Android 4 2 的 Nexus 7 设备 检查更多关于放大手势 http pauljadam com androida11y magnificat
  • 获取AngularJS中的对象长度未定义

    如何获得物体的长度 在控制台中我的对象如下所示 Object 2 true 3 true 4 true length会给我不明确的 我只想得到results 3对于这个案例 var keys Object keys objInstance
  • 如何找到一条边上距离另一个点最近的点

    我正在寻找一种方法来有效地找到边缘上距离其他点最近的点 假设我知道两个点 它们是边的顶点 我可以计算穿过这些点的线的方程 计算边缘上距离平面上其他点最近的点的最佳方法是什么 我想发布一张图片 但我没有足够的声誉点 假设这条线由 x1 y1
  • 聚合列 - 如何处理不均匀的数据帧

    我想聚合每个Chr每第三行 三行的总和 然而 自从我的df不能被 3 整除 我不知道如何处理最后剩下的行 它可能只是 1 或 2 行 如果还剩下两行 我想将剩下的两行相加 Input data frame Chr c chr1 chr1 c
  • 在 Verilog 中判断总线是否包含单个 x 的最佳方法是什么?

    我有一个监控总线的测试台 总线内的一些信号 位 可以是 1 bx 由于多种原因 我需要知道总线内是否有任何信号是 1 bx 如果总线包含任何 x 测试 不用于综合 仅用于模拟目的 的最佳方法是什么 我曾希望我可以使用减少或然后使用 但这似乎
  • NoMethodError 未定义方法“link_to_function”

    我将 ActiveAdmin 添加到我的应用程序中 更新了一些 gem 现在我得到了undefined method link to function 查看用户显示页面时 我有will paginategem 和我添加了一个初始化程序 所以
  • 当我尝试变换此播放器控制器时,它只是重置到原始位置

    这是我现在使用的播放器控制器的简化版本 它仍然会产生如下错误 using UnityEngine using UnityStandardAssets CrossPlatformInput using UnityStandardAssets
  • GIT 后接收挂钩未检出子模块

    我一直在开发 Kohana 3 项目 该项目是我不久前使用下载的 zip 文件安装的 我的远程服务器 project git 上有一个 git 存储库 它检查对我测试应用程序的工作目录 public html 的最新提交 我的接收后挂钩文件
  • 同步块——锁定多个对象

    我正在建模一个游戏 其中多个玩家 线程 同时移动 玩家当前所在位置的信息被存储两次 玩家有一个变量 hostField 它引用棋盘上的一个字段 每个字段都有一个 ArrayList 存储当前位于该字段的玩家 我对拥有冗余信息这一事实不太满意
  • min-height:100% 不起作用,因为我也想要它

    我有一个容器 div 包含 3 个 div 一个侧边栏 一个内容和一个标题 而内部的所有元素均按应有的方式呈现 如果这可能会影响我的问题 则它们被定位为 相对 侧边栏和内容使成为min height 100 根据我的需要 包含它们的 div
  • 如何在 Bash 中添加到流之前?

    假设我在 bash 中有以下命令 one two one运行很长时间产生输出流并且two对该流的每一行执行快速操作 但是two除非它读取的第一个值告诉它每行要读取多少个值 否则根本不起作用 one不输出该值 但我提前知道它是什么 假设它是1
  • 检查上传文件的类型

    如何检查使用上传的文件的文件类型FileUploaderASP NET C 网页中的控件 我尝试检查文件扩展名 但当 JPEG 图像 例如Leonardo jpg 被重命名为具有 PDF 的扩展名 例如Leonardo pdf I trie
  • 为什么在函数内部使用 let 声明的某些变量在另一个函数中可用,而其他变量则导致引用错误?

    我不明白为什么变量在函数内声明时表现得如此奇怪 In the first我声明的函数let变量b and c与价值10 b c 10 In the second我显示的功能 b c 这表明 10 10 Also in first我声明的函数
  • 在 C++ 中“stable_sort()ing”STL

    我认为问题标题足够清楚 is is possible to stable sort a std list in C 或者我必须将其转换为 std vector 吗 我问这个问题是因为我尝试了一个简单的示例 它似乎需要 RandomAcces