Maison  >  Article  >  développement back-end  >  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
WBOYavant
2023-08-27 23:29:021349parcourir

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

Input

7
1 5
1 8
1 3
2 8
1 9
3 8
3 3

Output

No
Yes

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