Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Programm, das Map STL verwendet, um die Schülernummern und -namen der Schüler zu speichern

C++-Programm, das Map STL verwendet, um die Schülernummern und -namen der Schüler zu speichern

PHPz
PHPznach vorne
2023-09-17 10:05:02729Durchsuche

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

Angenommen, wir haben eine Kartendatenstruktur eines Schülerdatenträgers. Der Name des Datenträgers besteht aus ganzzahligen Daten und der Name besteht aus Daten vom Typ Zeichenfolge. Auf unserer Standardeingabe stellen wir n Abfragen bereit. Jede Abfrage (pro Zeile) muss zwei Elemente enthalten, bei Typ-1-Abfragen drei Elemente. Das erste Element ist der Operator, das zweite der Datenträger, das dritte der Name und bei Abfragen mit zwei Elementen ist das zweite die Datenträgernummer. So geht's –

  • Einfügen. Dadurch wird der Name in die Karte des entsprechenden Volumes eingefügt

  • löschen. Dadurch wird die entsprechende Rollennummer von der Karte entfernt, sofern vorhanden.

  • Suchen. Dadurch wird die Karte mit der Rollennummer nach dem Namen durchsucht und der Name angezeigt, falls vorhanden, andernfalls wird nicht gefunden angezeigt.

Wenn die Eingabe also etwa n = 8 ist, dann ist die Abfrage = [[1,5,"Atanu"], [1,8,"Tapan"], [1,3,"Manish"],[ 2,8],[1,9,"Piyali"], [3,8],[3,3], [3,5]], dann lautet die Ausgabe seit dem Rollen [Nicht gefunden, Manish, Atanu]. 8 existiert nicht, der Name des Schülers in Rolle 3 ist Manish und der Name des Schülers in Rolle 5 ist „Atanu“.

Um dieses Problem zu lösen, führen wir die folgenden Schritte aus:

  • n := Anzahl der Abfragen li>
  • Definieren Sie eine Zuordnung m von Schlüsseln vom Typ Ganzzahl und Werten vom Typ Zeichenfolge.
  • Wenn n ungleich Null ist, dekrementiere n in jeder Iteration und führe Folgendes aus:
      Aktuellen Abfragetyp t abrufen
  • Rollennummer abrufen
  • Wenn t gleich 1 ist, dann:
    • Namen abrufen
    • m[roll ] := Name
  • Ansonsten, wenn t gleich 2 ist, dann:
    • m[roll] := Leere Zeichenfolge
  • Ansonsten
    • Wenn m[roll] keine leere Zeichenfolge ist, dann:
      • m [rollen] anzeigen
    • Andernfalls zeigt
      • „Nicht gefunden“ an

Beispiel

Sehen wir uns zum besseren Verständnis die folgende Implementierung an –

#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;
        }
    }
}

Eingabe

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

Ausgabe

Not found
Manish
Atanu

Das obige ist der detaillierte Inhalt vonC++-Programm, das Map STL verwendet, um die Schülernummern und -namen der Schüler zu speichern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Datentypen in CNächster Artikel:Datentypen in C