1

ベクトルは次のように定義されます。

template < class T, class Alloc = allocator<T> > class vector;

すべてのベクター コンストラクター (または各型の 1 つのオーバーロード) にはアロケーター オーバーロードがあり、既定のコンストラクターにも 1 つがあります。アロケータは、クラス テンプレートで既に指定されています。コンストラクタアロケータは何のためのものですか?

http://www.cplusplus.com/reference/vector/vector/vector/より

default (1) 

explicit vector (const allocator_type& alloc = allocator_type());

fill (2)    

explicit vector (size_type n);
         vector (size_type n, const value_type& val,
                 const allocator_type& alloc = allocator_type());

range (3)   

template <class InputIterator>
  vector (InputIterator first, InputIterator last,
          const allocator_type& alloc = allocator_type());

copy (4)    

vector (const vector& x);
vector (const vector& x, const allocator_type& alloc);

move (5)    

vector (vector&& x);
vector (vector&& x, const allocator_type& alloc);

initializer list (6)    

vector (initializer_list<value_type> il,
       const allocator_type& alloc = allocator_type());
4

2 に答える 2