|
![]() |
#1 |
Moderator
|
Можно попробовать класс-коллекцию Set, в которую вставлять суммы со знаком минус. Получится требуемый порядок сортировки. А при последующем извлечении минус, естественно, "убирать". Если у вас возможны повторяющиеся значения сумм, то можно попробовать вставлять в Set контейнеры типа [-очередная сумма; очередное значение последовательного уникального счетчика].
X++: static void TestQuasiSelectTop(Args _args) { SetEnumerator en; int a, b; set s = new set (types::Container); s.add([-100,1]); s.add([-700,2]); s.add([-200,3]); s.add([-500,4]); s.add([-200,5]); en = s.getEnumerator(); while (en.moveNext()) { [a,b] = en.current(); info(strfmt('%1 %2', -a,b)); } } 700 2 500 4 200 3 200 5 100 1 |
|