使用数字正确排序名称

pet*_*hen 3 c++ sorting predicate string-comparison

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

1 Hamlet
2 Ophelia
...
10 Laertes
Run Code Online (Sandbox Code Playgroud)

代替

1 Hamlet
10 Laertes
2 Ophelia
...
Run Code Online (Sandbox Code Playgroud)

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

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

Dolly
Dolly (2)
Dolly (3)
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*kis 5

这称为字母数字排序.
看看这个链接:Alphanum算法