簡體   English   中英

c++ 中的唯一標識

[英]Unique id in c++

所以問題是存儲 11 個學生的 ID 並將他們的運行存儲在板球比賽中運行必須大於 10 並且學生的 ID 數量必須是唯一的我只面臨創建一個條件的問題,當用戶輸入相同的值時程序應該告訴該值已經存在並添加一個不同的值。l

#include <iostream>

using namespace std;

void main() {
  int id[5];
  int run[5];
  int a, b, c, d, e, f;
  for (int i = 0; i < 5; i++) {
    for (int j = i; j < 5; j++) {
      cout << "Enter id" << i << endl;
      cin >> id[i];
      if (id[i] == id[j]) {
        cout << "same id exists";
        cin >> id[i];
      }

      cout << "Enter runs of student \n";
      do {
        cout << "Runs must be greater or equal to 10 \n";
        cin >> run[i];
      } while (run[i] < 10);
    }
  }

  system("pause");

您希望將 ID 存儲在std::set (或std::unordered_set )中:

#include <unordered_set>

std::unordered_set<id_type> ids;
// . . .
if (auto [iter, is_inserted] = ids.insert(new_id); !is_inserted) {
    // take care of repeated id
}

正如463035818-is-not-a-number指出的那樣,如果您需要與每個id關聯的學生,請使用std::map (或std::unordered_map ):

#include <unordered_map>

std::unordered_map<id_type, stdent_type> students;
// . . . 
if (auto [iter, is_inserted] = students.emplace(new_id, new_student); !is_inserted) {
    // take care of repeated id 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM