次の方法で共有


allocator::allocator

アロケーター オブジェクトを作成するために使用されるコンストラクター。

allocator( ); 
allocator(
   const allocator<Type>& _Right
);
template<class Other>
   allocator(
      const allocator<Other>& _Right
   );

パラメーター

  • _Right
    コピーするアロケーター オブジェクト。

解説

コンストラクターは何も実行しません。ただし、通常は別のアロケーター オブジェクトから構築されたアロケーター オブジェクトは、Equals を比較し、オブジェクトの割り当てが混在し、2 種類のアロケーターのオブジェクト間の解放を許可する必要があります。

使用例

// allocator_allocator.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
#include <vector>

using namespace std;

class Int {
public:
   Int( int i ) 
   {
      cout << "Constructing " << ( void* )this  << endl; 
      x = i;
      bIsConstructed = true;
   };
   ~Int( ) 
   {
      cout << "Destructing " << ( void* )this << endl; 
      bIsConstructed = false;
   };
   Int &operator++( ) 
   {
      x++;
      return *this;
   };
   int x;
private:
   bool bIsConstructed;
};

int main( ) 
{
   allocator<double> Alloc;
   vector <Int>:: allocator_type v1Alloc;

   allocator<double> cAlloc(Alloc); 
   allocator<Int> cv1Alloc(v1Alloc);

   if ( cv1Alloc == v1Alloc )
      cout << "The allocator objects cv1Alloc & v1Alloc are equal."
           << endl;
   else
      cout << "The allocator objects cv1Alloc & v1Alloc are not equal."
           << endl;

   if ( cAlloc == Alloc )
      cout << "The allocator objects cAlloc & Alloc are equal."
           << endl;
   else
      cout << "The allocator objects cAlloc & Alloc are not equal."
           << endl;
}
  
  

必要条件

ヘッダー : <memory>

名前空間: std

参照

関連項目

allocator Class