Maison > développement back-end > C++ > le corps du texte

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

PHPz
Libérer: 2023-09-17 10:05:02
avant
735 Les gens l'ont consulté

使用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;
        }
    }
}
Copier après la connexion

Input

8
1 5 Atanu
1 8 Tapan
1 3 Manish
2 8
1 9 Piyali
3 8
3 3
3 5
Copier après la connexion

Output

Not found
Manish
Atanu
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal