Heim >Backend-Entwicklung >C++ >C++-Programm zum Einfügen, Löschen und Suchen in gesetzten STL

C++-Programm zum Einfügen, Löschen und Suchen in gesetzten STL

WBOY
WBOYnach vorne
2023-08-27 23:29:021429Durchsuche

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

Angenommen, wir haben eine Sammlungsdatenstruktur von Daten vom Typ Ganzzahl. Auf unserer Standardeingabe stellen wir n Abfragen bereit. In jeder Abfrage (jeder Zeile) haben wir zwei Elemente. Der erste ist der Operator und der zweite das Element. So geht's –

  • Einfügen. Dadurch wird das Element in die Sammlung eingefügt und

  • entfernt. Dadurch wird das Element aus der Sammlung entfernt, sofern es vorhanden ist

  • Suchen. Dadurch wird die Sammlung nach dem Element durchsucht und „Ja“ angezeigt, falls vorhanden, andernfalls „Nein“.

Wenn die Eingabe also etwa n = 7 ist, dann ist die Abfrage = [[1,5],[1,8],[1,3],[2,8],[1,9], [3 ,8],[3,3]], dann lautet die Ausgabe [Nein, Ja], da 8 nicht in der Menge vorhanden ist, 3 jedoch schon.

Um dieses Problem zu lösen, führen wir die folgenden Schritte aus:

  • Definieren Sie eine Menge s
  • Definieren Sie eine Menge von Iteratoren „it“, um über s zu iterieren.
  • q := Abfragenummer
  • Wenn q nicht Null ist, Verringern Sie q nach jeder Iteration und gehen Sie wie folgt vor:
    • Nehmen Sie den Abfragetyp qt
    • zu qt
      • Wenn qt 1 ist, fügen Sie x s
        • aus dem Block ein.
      • Wenn qt 2 ist, dann löschen Sie x aus s
        • außerhalb des Blocks
      • Wenn qt 3 ist,
        • rufe darin find(x) auf
        • Wenn es mit dem letzten Element von s identisch ist, dann:
          • print NO
        • Sonst
          • JA drucken
        • außerhalb des Blocks

Beispiel

Sehen wir uns zum besseren Verständnis die folgende Implementierung an -

#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

Das obige ist der detaillierte Inhalt vonC++-Programm zum Einfügen, Löschen und Suchen in gesetzten STL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen