Computer >> Máy Tính >  >> Lập trình >> C ++

Bộ có thứ tự và GNU C ++ PBDS

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để hiểu bộ có thứ tự và GNU C ++ PBDS.

Bộ có thứ tự là một cấu trúc dựa trên chính sách khác với những cấu trúc trong thư viện STL. Tập hợp có thứ tự giữ tất cả các phần tử theo thứ tự đã sắp xếp và không cho phép các giá trị trùng lặp.

Ví dụ

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

Đầu ra

2
2
2
5
1