فرز الأسماء مع الأرقام بشكل صحيح
-
12-09-2019 - |
سؤال
لفرز أسماء العناصر، أريد دعم الأرقام بشكل صحيح. أي هذا:
1 Hamlet
2 Ophelia
...
10 Laertes
بدلا من
1 Hamlet
10 Laertes
2 Ophelia
...
هل يعرف أحد لمكافحة المقارنة التي يدعم ذلك بالفعل؟
(أي المسند الذي يمكن تمريره std::sort
)
أنا أساسا أنماطا لدعم: الرائدة عدد (على النحو الوارد أعلاه)، وعدد في النهاية، على غرار المستكشف:
Dolly
Dolly (2)
Dolly (3)
(أعتقد أنني أستطيع أن أعمل: قارن بالشخصية، وعلاج القيم الرقمية بشكل مختلف. ومع ذلك، من المحتمل أن يكسر Unicode Collaiton و Whatnot)
المحلول
وهذا ما يسمى الفرز الأبجدي الرقمي.
تحقق من هذا الرابط: خوارزمية Alphanum.
نصائح أخرى
أعتقد أنه يمكنك استخدام كائن زوج ثم قم بإجراء ناقل> ثم فرز هذا المتجه. تتم مقارنة أزواج بناء على عناصرها الأولى. لذلك، وبهذه الطريقة يمكنك الحصول على رغبتك في الرغبة.
لا تنتمي إلى StackOverflow