これはしばらくの間私を悩ませてきました。いくつかのアプローチを試しましたが、適切に機能するものはありませんでした。
IRC クライアントを書いていて、ユーザー名のリストを整理しようとしています (これは、現在のチャネルでのユーザーのアクセス レベルで並べ替える必要があります)。
これは簡単です。問題は、このリストは、ユーザーがチャンネルに参加または退出するたびに追加する必要があるため、退出時にユーザー名をリストから削除し、再参加するときに正しい位置に再度追加する必要があることです。
各ユーザーのアクセス レベルは、各ユーザー名の先頭にある 1 文字で示されます。これらの文字は予約されているため、名前が記号の 1 つで始まるという潜在的な問題はありません。最高から最低までの記号 (並べ替える必要がある順序で) は次のとおりです。 ~ & @ % +
いかなる種類のアクセス権もないユーザーには、ユーザー名の前に記号がありません。それらはリストの一番下にあるはずです。
例: ソートされていない配列には次のものが含まれる可能性があります: ~user1 ~user84 @user3 &user8 +user39 user002 user2838 %user29
また、要素が次の順序になるように並べ替える必要があります: ~user1 ~user84 &user8 @user3 %user29 +user39 user002 user2838
ユーザーをアクセス レベルで並べ替えた後、アルファベット順に並べ替える必要もあります。
ここで質問するのは最後の手段です。誰かが私を助けてくれれば、とても助かります。前もって感謝します。