C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

順序集合とGNUC++ PBDS


このチュートリアルでは、順序集合とGNU C++PBDSを理解するためのプログラムについて説明します。

順序集合は、STLライブラリにあるもの以外のポリシーベースの構造です。順序セットは、すべての要素を並べ替えられた順序で保持し、重複する値を許可しません。

#include <iostream>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, 
rb_tree_tag,tree_order_statistics_node_update>
int main(){
   //declaring ordered set
   ordered_set o_set;
   o_set.insert(5);
   o_set.insert(1);
   o_set.insert(2);
   cout << *(o_set.find_by_order(1))
      << endl;
   cout << o_set.order_of_key(4)
      << endl;
   cout << o_set.order_of_key(5)
      << endl;
   if (o_set.find(2) != o_set.end())
      o_set.erase(o_set.find(2));
   cout << *(o_set.find_by_order(1))
      << endl;
   cout << o_set.order_of_key(4)
      << endl;
   return 0;
}

出力

2
2
2
5
1

  1. 中空のピラミッドとダイヤモンドのパターンをC++で印刷するプログラム

    ここでは、C++を使用して中空のピラミッドとダイヤモンドのパターンを生成する方法を説明します。ソリッドピラミッドパターンを非常に簡単に生成できます。中空にするには、いくつかのトリックを追加する必要があります。 中空ピラミッド 最初の行のピラミッドには1つの星が印刷され、最後の行にはn個の星が印刷されます。他の行の場合、行の開始と終了に正確に2つの星が印刷され、これら2つの開始の間に空白があります。 サンプルコード #include <iostream> using namespace std; int main() {    int n, i, j; &nbs

  2. C / C ++でビットをどのように設定、クリア、および切り替えますか?

    C、C ++、Python、およびこれらの操作をサポートする他のすべてのプログラミング言語でビット演算子を使用して、クリアビットとトグルビットを設定できます。また、ビットを適切な場所に配置するには、ビットシフト演算子を使用する必要があります。 少し設定する ビットを設定するには、ビットごとのOR演算子-を使用する必要があります。 例 #include n; i | =(1 <