まず第一に、私は初心者のプログラマーです。私は AutoHotkey スクリプト、一連の c# と一部または c++ を学びました。私の質問は、言語や構文に固有のものではなく、より概念的なものです。状況を説明することから始めます (すべてのコードは疑似コードと同様に解釈する必要があります)。
私の最新のプロジェクトは、サーバーとクライアントを備えたインスタント メッセンジャーのようなプログラムです。それらは次のように機能します。
サーバ
- クライアント情報を 3 つの異なる配列に割り当てます (これは好きではありません)
- NewConnection[skt]、userNick[ニック]、nickFromSocket[skt]
クライアント
- サーバーにメッセージを送信 > サーバーが受信 > サーバーが応答 > クライアントがメッセージを受信し、チャット ログに記録します。
配列 'userNick' が、従来のインデックス番号 (userNick[index]) の代わりにユーザーの実際のニックネームを使用していることに既にお気付きでしょう。これは重要で、次のように機能します。
// New user has connected
skt = WINSOCK_getSkt()
NewConnection[skt] // Simple to parse with a loop: NewConnection.MaxIndex()
// Receive new user's nickname
skt = WINSOCK_getSkt()
nick = WINSOCK_getNick()
userNick[nick] = nick
nickFromSocket[skt] = nick
ユーザーのニックネームを 2 回割り当てる理由は、ループを使用して配列を解析することを避けるためです。クライアントがサーバーにメッセージを送信すると、サーバーはソケット番号 (各ユーザーに固有) を確認でき、その変数を使用して、2 つの短い行からユーザーのニックネームを即座に取得できるため、これは簡単で実現できます。
// Get user's nickname
skt = WINSOCK_getSkt()
nick = nickFromSocket[skt]
今まですべてが明確であることを願っています。
質問
これらすべてをクラスに変換しながら、配列からデータを取得する速度を維持するにはどうすればよいでしょうか? クラスの操作がはるかに簡単で、論理的であることはわかっていますが、解析するユーザーがますます増えると、クラスの効率が低下するのではないかと心配しています。オブジェクト/クラスに同等のものはありますか? ここまでお読みいただき、ありがとうございました。