ホームページ  >  記事  >  バックエンド開発  >  セット STL の挿入、削除、検索を行うための C++ プログラム

セット STL の挿入、削除、検索を行うための C++ プログラム

WBOY
WBOY転載
2023-08-27 23:29:021349ブラウズ

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

整数型データのコレクション データ構造があるとします。標準入力では、n 個のクエリを提供します。各クエリ (各行) には 2 つの要素があります。 1 つ目は演算子、2 つ目は要素です。操作は次のとおりです -

  • 挿入。これにより、要素がコレクション

  • に挿入され、削除されます。これにより、コレクションに要素が存在する場合はその要素が削除されます。

  • 検索。これにより、コレクション内で要素が検索され、存在する場合は「はい」が表示され、存在しない場合は「いいえ」が表示されます。

入力が n = 7 のような場合、クエリ = [[1,5],[1,8],[1,3],[2,8] ]、[1,9]、[3,8]、[3,3]] の場合、セットには 8 は存在しませんが、3 は存在するため、出力は [No, Yes] になります。

この問題を解決するには、次の手順に従います。

  • コレクション s
  • #を定義します。s# を反復する一連の反復子 "it" を定義します。
  • ##q := クエリの数
  • q が 0 でない場合、反復ごとに q を減らし、次の操作を実行します。
  • クエリ タイプ qt
      ## を取得します。 # for qt
    • qt が 1 の場合、x s
      • ブロックの外に挿入
        • #qt が 2 の場合、s から x# を削除します
        • ##ブロックから出ます
        • qt が 3 の場合、
        • その中で find(x) を呼び出します
      • 最後に一致する場合s の要素の場合:
        • Print NO
          • それ以外の場合
          • Print YES
          • From Out ofブロック
    理解を深めるために次の実装を見てみましょう -
  • #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

以上がセット STL の挿入、削除、検索を行うための C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。