c++ - *临时*排序 vector 的好方法是什么?

标签 c++ sorting vector temporary

我有一个 std::vector,我需要根据选定的算法对某些操作进行排序,但在其余时间保持其原始状态(例如,按输入时间排序的项目)。

显然我可以使用 std::copy 创建一个临时 vector 并对其进行排序,但我想知道是否有更好的方法,可能是通过为输入的项目加上时间戳。

干杯

最佳答案

您可以创建一个 std::vector 来保存第一个 vector 的所有索引。然后,您可以根据需要对索引 vector 进行排序。这应该很快,最重要的是,这并不意味着您必须复制第一个 vector (这可能成本更高!)。

关于c++ - *临时*排序 vector 的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312737/

相关文章:

java - ArrayDeque 类的字符

c++ - 如果你在 vector 拷贝中放一个常量会怎样?或移动?

C++ std::vector 内存/分配

arrays - 二维数组中的前 N ​​个值,要屏蔽重复项

c++ - 如何将不同文件的内容写入一个 vector 以供进一步使用 getline

c++ - 用于 NTLM 身份验证的 GSSAPI

c++ - std::condition_variable::notify_one:如果某些线程有假谓词,它会唤醒多个线程吗?

c++ - 编译器一直告诉 "' 对象'尚未声明“......?

sorting - SlickGrid RemoteModel 与 Dataview 模型

javascript - JQuery 按子 div 排序 div