set::get_allocator
Restituisce una copia dell'oggetto allocatore utilizzato per creare il set.
allocator_type get_allocator( ) const;
Valore restituito
L'allocatore utilizzato dall'impostazione per gestire memoria, ovvero il parametro di template Allocator.
Per ulteriori informazioni su Allocator, vedere la sezione relativa alle osservazioni dell'argomento set Class.
Note
Gli allocatori per la classe specificata specificano come classe gestisce l'archiviazione.Gli allocatori predefiniti forniti con le classi di contenitori STL è sufficiente per la maggior parte delle esigenze di programmazione.La scrittura e utilizzare una classe personalizzata di un allocatore sono un argomento avanzato di C++.
Esempio
// set_get_allocator.cpp
// compile with: /EHsc
#include <set>
#include <iostream>
int main( )
{
using namespace std;
set <int>::allocator_type s1_Alloc;
set <int>::allocator_type s2_Alloc;
set <double>::allocator_type s3_Alloc;
set <int>::allocator_type s4_Alloc;
// The following lines declare objects
// that use the default allocator.
set <int> s1;
set <int, allocator<int> > s2;
set <double, allocator<double> > s3;
s1_Alloc = s1.get_allocator( );
s2_Alloc = s2.get_allocator( );
s3_Alloc = s3.get_allocator( );
cout << "The number of integers that can be allocated"
<< endl << "before free memory is exhausted: "
<< s2.max_size( ) << "." << endl;
cout << "\nThe number of doubles that can be allocated"
<< endl << "before free memory is exhausted: "
<< s3.max_size( ) << "." << endl;
// The following line creates a set s4
// with the allocator of multiset s1.
set <int> s4( less<int>( ), s1_Alloc );
s4_Alloc = s4.get_allocator( );
// Two allocators are interchangeable if
// storage allocated from each can be
// deallocated by the other
if( s1_Alloc == s4_Alloc )
{
cout << "\nThe allocators are interchangeable."
<< endl;
}
else
{
cout << "\nThe allocators are not interchangeable."
<< endl;
}
}
Esempio di output
L'output seguente viene per x86.
The number of integers that can be allocated
before free memory is exhausted: 1073741823.
The number of doubles that can be allocated
before free memory is exhausted: 536870911.
The allocators are interchangeable.
Requisiti
intestazione: <set>
Spazio dei nomi: deviazione standard