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

C ++ STLでget_allocator()を設定します


この記事では、C++STLのset::get_allocator()関数、それらの構文、動作、および戻り値について説明します。

C ++ STLの設定とは何ですか?

C ++ STLのセットは、一般的な順序で一意の要素を持つ必要があるコンテナーです。要素の値は要素を識別するため、セットには一意の要素が必要です。セットコンテナに値を追加すると、後で変更することはできませんが、値を削除したり、セットに追加したりすることはできます。セットは二分探索木として使用されます。

設定内容::get_allocator()?

get_allocator()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。この関数は、関連付けられているセットコンテナのアロケータオブジェクトのコピーを返します。 get_allocator()は、メモリチャンクを設定されたコンテナに割り当てるために使用されます。

アロケータは、設定されたコンテナの動的なメモリ割り当てを担当するオブジェクトです。

構文

Set1.get_allocator();

パラメータ

この関数はパラメータを受け入れません

戻り値

この関数は、オブジェクトが関数に関連付けられているアロケータまたはアロケータのコピーを返します。

#include <iostream>
#include <set>
using namespace std;
void input(int* arr){
   for(int i = 0; i <= 5; i++)
   arr[i] = i;
}
void output(int* arr){
   for (int i = 0; i <= 5; i++)
   cout << arr[i] << " ";
   cout << endl;
}
int main(){
   set<int> mySet;
   int* arr;
   arr = mySet.get_allocator().allocate(6);
   input(arr);
   output(arr);
   mySet.get_allocator().deallocate(arr, 6);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

0 1 2 3 4 5

  1. STLにSet_Intersectionを実装するC++プログラム

    2つのセットの共通部分は、両方のセットに共通する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin    Declare set vector v and iterator st.    Initialize st = set_intersection (set1, set1 + n, set2, s

  2. STLにSet_Differenceを実装するC++プログラム

    2つのセットの違いは、2番目のセットではなく、最初のセットに存在する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin    Declare set vector v and iterator st.    Initialize st = set_difference (set1, set1 + n,