|
![]() |
#1 |
Участник
|
ГЫ! Даже если нет контейнеров, то порядок установленный при помощи SysQuery::value зависит от используемого языка!
так в русском NoYes::No сортируется как слово "Нет", а при английском языке сортируется как слово "No" X++: static void sortContainer(Args _args) { container con = [5,1,2,'Sumit Loya',9,'Ashish singh', NoYes::No]; ... int cmp(anytype a, anytype b) { return(SysQuery::value(a) > SysQuery::value(b) ) ? 1 : -1; // результат зависит от языка, в котором работает пользователь } ... ![]() буду ОЧЕНЬ признателен, если кто подскажет. Не то, чтобы это было нужно. Но интересножеж. ![]() |
|
![]() |
#2 |
Участник
|
Цитата:
![]() А если серьёзно, то в чём смысл сортировки ради сортировки? Можно конечно расматривать упорядоченный контейнер как некую его хеш-функцию, котрую потом можно использовать для определения эквивалентности контейнеров. Но решить данную задачу можно и более простыми, и главное более оптимальными способами. Итого. Считаю возможным решать задачу сортировки разнородных данных, только в контексте конкретной задачи. Тогда выбор методики сравнения будет зависеть от самой задачи, и вообще говоря не будет универсальным, подходящим для других задач. Если говорить о создании универсального инструмента сортировки контейнера, то универсальным выходом может быть передача предиката сравнения в качестве входного параметра алгоритму сортировки. Как это реализовать в аксапте - уже другой вопрос Передача функции в качестве параметра |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#3 |
Участник
|
Разбор моих грехов
Оставьте до поры Вы оцените красоту игры (С) ![]() |
|
|
|