Heim > Backend-Entwicklung > C++ > 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
Freigeben: 2023-09-17 10:05:02
nach vorne
758 Leute haben es durchsucht

使用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;
        }
    }
}
Nach dem Login kopieren

Eingabe

8
1 5 Atanu
1 8 Tapan
1 3 Manish
2 8
1 9 Piyali
3 8
3 3
3 5
Nach dem Login kopieren

Ausgabe

Not found
Manish
Atanu
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage