使用数字正确排序名称

时间:2009-09-21 09:59:12

标签: c++ sorting predicate string-comparison

对于项目名称的排序,我想正确支持数字。即:

1 Hamlet
2 Ophelia
...
10 Laertes

而不是

1 Hamlet
10 Laertes
2 Ophelia
...

是否有人知道已经支持的比较仿函数?
(即可传递给std::sort的谓词)

我基本上有两种模式可供支持:前导数字(如上所述)和最后数字,类似于资源管理器:

Dolly
Dolly (2)
Dolly (3)

(我想我可以解决这个问题:按字符进行比较,并以不同的方式处理数值。但是,这可能会打破unicode collaiton等等)

2 个答案:

答案 0 :(得分:5)

这就是所谓的字母数字排序 查看此链接:The Alphanum Algorithm

答案 1 :(得分:0)

我想你可以使用一个对象,然后制作矢量>然后对此向量进行排序。 根据第一个元素比较对。所以,这样你就可以得到你想要的那种。