C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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


学生ロールのマップデータ構造があり、名前が整数データで、名前が文字列型データであるとします。標準入力では、n個のクエリを提供します。各クエリ(各行)には2つの要素が必要であり、タイプ1のクエリには3つの要素があります。 1つ目は演算子、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:=クエリの数
  • 整数型のキーと文字列型の値の1つのマップmを定義します。
  • nがゼロ以外の場合、反復ごとにnを減らし、次のようにします。
    • 現在のクエリタイプを取得する
    • ロール番号を取得
    • tが1と同じ場合、次のようになります。
      • 名前を付ける
      • m [roll]:=名前
    • それ以外の場合、tが2と同じ場合、次のようになります。
      • m [roll]:=空白の文字列
    • それ以外の場合
      • m [roll]が空白の文字列でない場合、次のようになります。
        • 表示m[ロール]
      • それ以外の場合
        • 「見つかりません」を表示します

理解を深めるために、次の実装を見てみましょう-

#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

  1. C++STLプログラムのmap::operator []

    この記事では、C ++ STLでのmapequal‘[]’演算子の動作、構文、および例について説明します。 C ++ STLのマップとは何ですか? マップは連想コンテナであり、キー値とマップされた値の組み合わせによって形成された要素を特定の順序で格納するのを容易にします。マップコンテナでは、データは常に関連するキーを使用して内部的に並べ替えられます。マップコンテナの値には、一意のキーからアクセスします。 「[]」演算子に等しいマップとは何ですか? map ::operator[]は参照演算子です。この演算子は、キーによってコンテナ内の要素にアクセスするために使用されます。 コンテナに一

  2. アレイが回文であるかどうか、またはC++でSTLを使用していないかどうかを確認するプログラム

    n個の整数の配列arr[n]が与えられた場合、タスクは配列が回文であるかどうかを見つけることです。 C++でSTLを使用して指定されたタスクを実行する必要があります。 C ++には、STL(標準テンプレートライブラリ)の機能があります。これは、データ構造と、スタック、キュー、リストなどのいくつかの機能を提供するために使用されるC ++テンプレートクラスのセットです。これらを使用するには、知識が必要です。テンプレートクラスの。 回文は、シーケンスの前または後ろから同じように読み取られるシーケンスです。回文の簡単な例としては、-MADAM、RACECARなどがあります。配列は、以下の例のような