c++ - 正确排序名称与数字

标签 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 排序等等)

最佳答案

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

关于c++ - 正确排序名称与数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1453725/

相关文章:

c++ - 创建并编译一个基类以在其他 C++ 项目 (ROS) 中使用

algorithm - 当两个数组有序时,什么地方排序?

sql - 如何在不使用and子句的情况下在Sql查询中使用Between子句

list - 串联前后的列表检查具有不同的结果

c++ - Boost.uBLAS 中的矩阵表达式和 vector 表达式类是什么?

c++ - 在同一行中打印引用变量和更改此变量的函数

c++ - 用公共(public)指针交换指向已分配内存的指针

java - Java 中的集合排序

python按值排序json列表

java - 在java中检索具有Predicate返回类型的方法的值