Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ chèn, xóa, tìm trong set STL

Giả sử chúng ta có set chứa số nguyên. Nhập n truy vấn, mỗi truy vấn 2 phần tử: loại và giá trị. Loại 1: chèn. Loại 2: xóa. Loại 3: tìm - in "Yes" nếu có, "No" nếu không.

Ví dụ: n=7, queries=[[1,5],[1,8],[1,3],[2,8],[1,9],[3,8],[3,3]] → [No, Yes]

Giải thuật

  • set s, iterator it
  • Đọc q
  • While q--: đọc qt, x
    • qt==1: s.insert(x)
    • qt==2: s.erase(x)
    • qt==3: it=s.find(x); nếu it==s.end() in "No", ngược lại "Yes"

Ví dụ minh họa

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

Đầu vào

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

Đầu ra

No Yes