Heim > Backend-Entwicklung > C++ > Hauptteil

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

WBOY
Freigeben: 2023-08-27 23:29:02
nach vorne
1368 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

Input

7
1 5
1 8
1 3
2 8
1 9
3 8
3 3
Nach dem Login kopieren

Output

No
Yes
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!