Maison >développement back-end >C++ >Programme C++ qui utilise la carte STL pour stocker les numéros et noms des étudiants

Programme C++ qui utilise la carte STL pour stocker les numéros et noms des étudiants

PHPz
PHPzavant
2023-09-17 10:05:02766parcourir

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

Supposons que nous ayons une structure de données cartographiques d'un volume étudiant. Le nom du volume est une donnée entière et le nom est une donnée de type chaîne. Sur notre entrée standard, nous fournissons n requêtes. Il doit y avoir deux éléments dans chaque requête (par ligne), ou trois éléments pour les requêtes de type 1. Le premier élément est l'opérateur, le deuxième est le volume, le troisième est le nom et pour les requêtes à deux éléments, le deuxième est le numéro du volume. Voici comment procéder -

  • Insérer. Cela insérera le nom dans la carte du volume correspondant

  • delete. Cela supprimera le numéro de rôle correspondant de la carte s'il existe.

  • Recherche. Cela recherchera le nom sur la carte avec le numéro de rôle et l'affichera s'il est présent, sinon il ne sera pas trouvé.

Donc, si l'entrée est quelque chose comme n = 8 alors la requête = [[1,5,"Atanu"], [1,8,"Tapan"], [1,3,"Manish "],[ 2,8],[1,9,"Piyali"], [3,8],[3,3], [3,5]], alors le résultat sera [Not found, Manish, Atanu], puisque roll 8 n'existe pas, le nom de l'élève du rouleau 3 est Manish et le nom de l'élève du rouleau 5 est "Atanu".

Pour résoudre ce problème, nous suivrons les étapes suivantes -

  • n := nombre de requêtes li>
  • Définir une carte m de clés de type entier et de valeurs de type chaîne.
  • Lorsque n est différent de zéro, décrémentez n à chaque itération, exécutez :
      Obtenez le type de requête actuel t
  • Obtenez le numéro de rôle
  • Si t est identique à 1, alors :
    • Obtenez le nom
    • m[roll ] := nom
  • Sinon lorsque t est égal à 2, alors :
    • m[roll] := Chaîne vide
  • Sinon
    • Si m[roll] n'est pas une chaîne vide, alors :
      • Afficher m [roll]
    • Sinon
      • affiche "Not Found"

Exemple

Voyons l'implémentation suivante pour une meilleure compréhension -

#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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Types de données en CArticle suivant:Types de données en C