Trong hướng dẫn này, chúng ta sẽ thảo luận về chương trình hiểu ordered set và GNU C++ PBDS.
Ordered set là cấu trúc dữ liệu dựa trên policy (policy-based data structure) khác với các cấu trúc trong thư viện STL. Ordered set giữ tất cả các phần tử theo thứ tự đã sắp xếp và không cho phép giá trị trùng lặp.
Ví dụ minh họa
#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(){ //Khai báo 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; }Kết quả
2 2 2 5 1