首頁 >後端開發 >C++ >使用map STL儲存學生的學號和姓名的C++程式

使用map STL儲存學生的學號和姓名的C++程式

PHPz
PHPz轉載
2023-09-17 10:05:02750瀏覽

使用map STL存储学生的学号和姓名的C++程序

假設我們有一個學生卷的地圖資料結構,卷的名稱是整數數據,名稱是字串類型資料。在我們的標準輸入中,我們提供 n 個查詢。在每個查詢中(每行)必須有兩個元素,對於類型 1 查詢,必須有三個元素。第一項是運算符,第二項是卷,第三項是名稱,對於雙元素查詢,第二項是卷號。操作如下 -

  • 插入。這會將名稱插入到對應卷的地圖中

  • 刪除。這將從地圖上刪除對應的捲號(如果存在)。

  • 搜尋.這將在帶有捲號的地圖中搜尋名稱,如果存在則顯示名稱,否則顯示未找到。

因此,如果輸入類似n = 8,則查詢= [[1,5,"阿塔努"], [1,8,"塔潘"], [ 1,3,"曼尼什"],[2,8],[1,9,"皮亞利"], [3 ,8],[3,3], [3,5]],則輸出將為[Not found, Manish, Atanu],因為卷8 不存在,卷3 的學生姓名為Manish,姓名為卷數為5 的學生是「Atanu」。

為了解決這個問題,我們將按照以下步驟操作-

  • n := 查詢數量 li>
  • 定義一個整數類型鍵和字串類型值的映射m。
  • 當n 非零時,在每次迭代中減少n,執行:
      取得目前查詢類型t
  • 取得卷號
  • 如果t與1相同,則:
    • 取得名稱
    • m[roll] := name
  • 否則當t 等於2 時,則:
    • m[roll ] := 空字串
  • 否則
    • #如果m[roll] 不是空字串,則:
      • #顯示m[roll]
    • 否則
      • 顯示「找不到」
##範例

讓我們看看以下實現,以便更好地理解-

#include <iostream>
#include <map>
using namespace std;
int main(){
    int n;
    cin >> n;
    map<int, string> m;
    while (n--) {
        int t;
        cin >> t;
        int roll;
        cin >> roll;
        if (t == 1) {
            string name;
            cin >> name;
            m[roll] = name;
        } else if (t == 2) {
            m[roll] = "";
        } else {
            if(m[roll] != "")
                cout << m[roll] << endl;
            else
                cout << "Not found" << endl;
        }
    }
}

輸入

8
1 5 Atanu
1 8 Tapan
1 3 Manish
2 8
1 9 Piyali
3 8
3 3
3 5

輸出

Not found
Manish
Atanu

以上是使用map STL儲存學生的學號和姓名的C++程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除