ホームページ >バックエンド開発 >C++ >マップ STL を使用して生徒の生徒番号と名前を保存する C++ プログラム

マップ STL を使用して生徒の生徒番号と名前を保存する C++ プログラム

PHPz
PHPz転載
2023-09-17 10:05:02766ブラウズ

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

学生ボリュームのマップ データ構造があるとします。ボリューム名は整数データ、名前は文字列型データです。標準入力では、n 個のクエリを提供します。各クエリ (行ごと) には 2 つの要素が必要で、タイプ 1 クエリの場合は 3 つの要素が必要です。最初の項目は演算子、2 番目はボリューム、3 番目は名前です。2 要素のクエリの場合、2 番目はボリューム番号です。操作は次のとおりです -

  • 挿入。これにより、削除された対応するボリューム

  • のマップに名前が挿入されます。これにより、対応するロール番号が存在する場合はマップから削除されます。 ############検索。これにより、名前のロール番号を使用してマップが検索され、名前が存在する場合はその名前が表示され、存在しない場合は表示されません。

  • したがって、入力が n = 8 のような場合、クエリ = [[1,5,"Atanu"], [1,8,"Tapan"], [ 1 ,3,"Manish"],[2,8],[1,9,"Piyali"], [3,8],[3,3], [3,5]] の場合、出力は [見つかりません] になります。 、マニッシュ、アタヌ] ロール 8 が存在せず、ロール 3 の生徒の名前がマニッシュ、ロール 5 の生徒の名前が「アタヌ」であるためです。

  • この問題を解決するには、次の手順に従います。

n := クエリ数量

整数型のキーと文字列型の値 m のマッピングを定義します。 。
  • n がゼロ以外の場合、反復ごとに n を減らして実行します。 li>
  • 現在のクエリ タイプを取得します t
  • ボリューム番号を取得します
      If t 1 と同じ場合:
  • Get the name
  • m[roll] := name
    • それ以外の場合、t が 2 の場合:
    • m[roll ] := 空の文字列
    • otherwise
    • 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;
        }
    }
}
Input
8
1 5 Atanu
1 8 Tapan
1 3 Manish
2 8
1 9 Piyali
3 8
3 3
3 5

Output

Not found
Manish
Atanu

以上がマップ STL を使用して生徒の生徒番号と名前を保存する C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
前の記事:C のデータ型次の記事:C のデータ型