Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

g++의 정책 기반 데이터 구조


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

이러한 데이터 구조는 매우 다양하여 요소 색인 확인, 색인에서 요소 찾기 등과 같은 많은 기능을 사용할 수 있습니다.