首頁  >  文章  >  後端開發  >  C++程式用於在set STL中插入、刪除和查找

C++程式用於在set STL中插入、刪除和查找

WBOY
WBOY轉載
2023-08-27 23:29:021347瀏覽

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

假設我們有一個整數型別資料的集合資料結構。在我們的標準輸入中,我們提供 n 個查詢。在每個查詢(每行)中,我們有兩個元素。第一個是運算符,第二個是元素。操作如下 -

  • 插入。這會將元素插入集合中

  • 刪除。這將從集合中刪除該元素(如果存在)

  • 搜尋。這將在集合中搜尋元素,如果存在則顯示“是”,否則顯示“否”。

因此,如果輸入類似n = 7,則查詢= [[1,5 ],[1,8],[1,3],[2,8], [1,9],[3,8],[3,3]],則輸出將為[No, Yes],因為集合中不存在8,而存在3。

為了解決這個問題,我們將按照以下步驟操作-

  • 定義一個集合s
  • 定義一組迭代器「it」來迭代s
  • q := 查詢數
  • 當q 不為零時,每次迭代後減少q,執行以下操作:
    • 取查詢類型qt
    • 為qt
      • 如果qt為1,則插入x s
        • 從區塊中出來
      • 如果qt為2,則從s中刪除x
        • 從區塊中出來
      • 如果qt 為3,
        • 在it 內呼叫find(x)
        • 如果它與s 的最後一個元素,則:
          • 列印NO
        • 否則
          • 列印YES
        • ##從街區中出來
#範例

讓我們看看以下實現,以便更好地理解-

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

輸入

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

輸出

No
Yes

以上是C++程式用於在set STL中插入、刪除和查找的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除