вектор определяется какпочему распределитель в конструкторе?
template < class T, class Alloc = allocator<T> > class vector;
Каждый вектор конструктора (или одной перегрузки каждого типа) имеет перегрузку и распределителя конструктор по умолчанию имеет один, а также. Распределитель указан уже в шаблоне класса. Для чего нужен распределитель конструктора?
От 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());
Позволяет передать конкретный экземпляр распределителя. – juanchopanza
@juanchopanza: не будет ли он сломаться при вызове деструктора векторов, который использует деструктор шаблона класса? – user2814152
Я не вижу причин, почему он должен сломаться. Стандартные библиотечные контейнеры не так легко разбиваются. – juanchopanza