Это беспокоило меня уже некоторое время. Я пробовал несколько подходов, и ни один из них не работал должным образом.
Я пишу и клиент IRC и пытаюсь отсортировать список имен пользователей (который должен быть отсортирован по уровню доступа пользователей в текущем канале).
Это достаточно просто. Проблема в том, что этот список необходимо добавлять всякий раз, когда пользователь присоединяется к каналу или покидает его, поэтому его имя пользователя должно быть удалено из списка при выходе и повторно добавлено в правильную позицию при повторном присоединении.
Уровень доступа каждого пользователя обозначается одним символом в начале каждого имени пользователя. Эти символы зарезервированы, поэтому нет потенциальной проблемы с именем, начинающимся с одного из символов. Символы от высшего к низшему (в порядке их сортировки):
~
&
@
%
+
Пользователи без какого-либо доступа не имеют символа перед своим именем пользователя. Они должны быть внизу списка.
Например: несортированный массив может содержать следующее:
~ user1 ~ user84 @ user3 & user8 + user39 user002 user2838% user29
И нужно отсортировать так, чтобы элементы были в следующем порядке:
~ user1 ~ user84 & user8 @ user3% user29 + user39 user002 user2838
После того, как пользователи отсортированы по уровню доступа, они также должны быть отсортированы по алфавиту.
Спросите здесь, в крайнем случае, если бы кто-нибудь мог мне помочь, я был бы очень признателен.
Заранее спасибо.