Maison > développement back-end > C++ > Programme C++ pour l'insertion, la suppression et la recherche dans l'ensemble STL

Programme C++ pour l'insertion, la suppression et la recherche dans l'ensemble STL

WBOY
Libérer: 2023-08-27 23:29:02
avant
1417 Les gens l'ont consulté

C++程序用于在set STL中插入、删除和查找

Supposons que nous ayons une structure de données de collection de données de type entier. Sur notre entrée standard, nous fournissons n requêtes. Dans chaque requête (chaque ligne), nous avons deux éléments. Le premier est l’opérateur et le second est l’élément. Voici comment procéder -

  • Insérer. Cela insérera et

  • supprimera l'élément dans la collection. Cela supprimera l'élément de la collection s'il existe

  • Recherche. Cela recherchera l'élément dans la collection et affichera "Oui" s'il est présent, sinon "Non".

Donc, si l'entrée est quelque chose comme n = 7, alors la requête = [[1,5],[1,8],[1,3],[2,8],[1,9], [3,8],[3,3]], alors le résultat sera [Non, Oui], car 8 n'existe pas dans l'ensemble, mais 3 existe.

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

  • Définir un ensemble s
  • Définir un ensemble d'itérateurs "it" pour itérer sur s
  • q := numéro de requête
  • Quand q n'est pas nul, En diminuant q après chaque itération, procédez comme suit :
    • prenez le type de requête qt
    • vers qt
      • si qt vaut 1, insérez x s
        • hors du bloc
      • si qt vaut 2, puis de Supprimez x de s
        • hors du bloc
      • Si qt vaut 3,
        • appelle find(x) à l'intérieur
        • Si c'est le même que le dernier élément de s , alors :
          • imprime NON
        • Sinon
          • imprimer OUI
        • hors du bloc

Exemple

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

#include <iostream>
#include <set>
using namespace std;
int main(){
    set<int> s;
    set<int>::iterator it;
    int q,x;
    int qt;
    cin >> q;
    while(q--){
        cin>>qt>>x;
        switch(qt){
            case 1:s.insert(x);
                    break;
            case 2:s.erase(x);
                    break;
            case 3:it=s.find(x);
                    if(it==s.end())
                        cout<<"No"<<endl;
                    else
                        cout<<"Yes"<<endl;
                    break;
        }
    }
    return 0;
}
Copier après la connexion

Input

7
1 5
1 8
1 3
2 8
1 9
3 8
3 3
Copier après la connexion

Output

No
Yes
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