Сортировка имен по номерам правильно

Для сортировки названий предметов я хочу правильно поддерживать номера. то есть это:

1 Hamlet
2 Ophelia
...
10 Laertes

вместо

1 Hamlet
10 Laertes
2 Ophelia
...

Кто-нибудь знает о функторе сравнения, который уже поддерживает это?

(то есть предикат, который может быть передан)std::sort

У меня в основном есть две модели для поддержки: ведущий номер (как указано выше) и номер в конце, аналогично проводнику:

Dolly
Dolly (2)
Dolly (3)

(Я думаю, я мог бы решить это: сравнить по символам и по-разному относиться к числовым значениям. Однако, это, вероятно, сломало бы юникод-коллаж и еще много чего)

Ответы на вопрос(2)

Ваш ответ на вопрос