То есть вот был у строки указатель на массив символов, если ей нужно больше места, то сначала аллоцируется новый кусок, данные переписываются туда, указатель переставляется на новый кусок, а старый деаллоцируется?
То есть вот был у строки указатель на массив символов, если ей нужно больше места, то сначала аллоцируется новый кусок, данные переписываются туда, указатель переставляется на новый кусок, а старый деаллоцируется?
Это я просто свой вектор продолжаю писать. То есть когда мне надо увеличить capacity вдвое, я просто делаю allocate(2 * capacity), переписываю данные, указатель и делаю deallocate старого указателя, так?
Это я просто свой вектор продолжаю писать. То есть когда мне надо увеличить capacity вдвое, я просто делаю allocate(2 * capacity), переписываю данные, указатель и делаю deallocate старого указателя, так?
ну вот у std::allocator, на котором вроде бы весь stl, только allocate/deallocate. Но в allocate есть hint -- указатель, максимально близко к которому мы хотим выделить новую память. Не знаю, может ли он тут пригодиться