在 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 的相关文章

  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 使 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