g++ 컴파일러 Linux의 GNU용 C++ 컴파일러입니다.
g++ 컴파일러는 C++ 프로그래밍 언어 표준 라이브러리에 없는 일부 특수 데이터 구조에 대한 지원도 추가합니다. 이를 정책 기반 데이터 구조라고 합니다.
정책 기반 데이터 구조는 C++ 표준 라이브러리의 표준 데이터 구조와 비교하여 프로그래머에게 고성능, 의미론적 안전성 및 유연성을 제공합니다.
이러한 데이터 구조를 프로그램에 포함하려면 다음 행을 추가해야 합니다.
#include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds;
예시
이러한 정책 기반 데이터 구조가 어떻게 작동하는지 알아보는 프로그램을 살펴보겠습니다.
#include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <functional> #include <iostream> using namespace __gnu_pbds; using namespace std; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> new_data_set; int main() { new_data_set data; data.insert(34); data.insert(785); data.insert(12); data.insert(87); cout<<"The value at index 2 is "<<*data.find_by_order(2)<<endl; cout<<"The index of number 87 is "<<data.order_of_key(87)<<endl; return 0; }
출력
The value at index 2 is 785 The index of number 87 is 4
이러한 데이터 구조는 매우 다양하여 요소 색인 확인, 색인에서 요소 찾기 등과 같은 많은 기능을 사용할 수 있습니다.