私はある種のスーパーマーケットソフトウェアを作成しようとしていますが、問題が発生しました。アルゴリズム - 番号がすでにリストにあるかどうかを調べる
クライアントを追加するとすぐにIDがリストの次のIDとなりますが、リストを手動で変更するとIDが重複して作成されるため、IDを次の使用可能にする方法を見つけようとしていますID。 IDのリストは、このようなものですただし:
それは...
を使用できないID 6属性ますベクトルの完全な実行で等しい数が見つからない場合、どのようにIDを変更するだけですか?
ID = clientsV.size() + 1;
for (unsigned int g = 0; i < clientsV.size(); g++)
{
if (ID == clientsV.at(g).getClientID)
ID++;
};
"配管を徹底的に考えすぎると、排水を止めることになります。" - Scotty、Star Trek III。単純に 'clientsV'の中で最も高いIDを見つけて、それに1を加えて、なぜこの曲やダンスのルーチンのすべてにするのではないのですか? 'clientsV'が空の場合、あなたのIDは0または1です(あなたの選択を取る)。それ以外の場合は、アレイを1回スキャンし、最も高いIDを見つけて1を追加します。 –
@SamVarshavchikありがとうございます。どうすればいいですか?最大のIDを見つけるにはどうすればいいですか? –
仮最大IDを配列の最初の値に設定します。配列の内容を繰り返し処理します。配列の各値について:値が仮の最大のid値より大きい場合は、この値で仮の最大のid値を更新します。配列全体を反復処理した後、配列内で最大の値を持つようになりました。 –