如果我使用像std::sort这样的东西,我可以使用比较函数来不时更新进度指示器,但我不知道“百分比完成”。我也可以将排序分解成子排序,在子排序之间更新进度,然后合并。我的最佳选择可能是编写自己的排序方法,虽然我不知道需要多少努力才能获得与std::sort一样好的性能(并确保正确性)。无论如何,该排序方法偶尔会向回调方法发送“百分比完成”。
我想知道其他人是否遇到并解决了这个问题 - 我希望可能有一个标准库中的排序方法可以做到我想要的,或者我没有想到的其他技术。
更新:感谢迄今为止提供的伟大答案。已经有一些非常好的建议,我将暂停选择接受的答案,直到我有机会在即将到来的项目中测试这些想法。
更新2:我完成了我的项目,这最终成为一个非问题(至少对于客户而言。由于他们将销售该软件,他们可能仍然会从客户那里得到反馈,这将改变他们的想法)。选择接受的答案很困难,因为有许多好的答案,但最终我选择的那个指向Merge Sort的wiki文章具有非常生动的动画效果。因此,如果我需要继续进行此操作,这是我将要追求的第一种策略。