Re: chunked vector
От: Pavel Dvorkin Россия  
Дата: 03.12.22 02:32
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Нужна реализация такого контейнера:

M>Контейнер хранит вектор — ссылки на все его куски. Каждый кусок — это фактически вектор.
M>Когда заканчивается место, он не переаллоцирует память, а выделяет новый кусок и записывает в него.

M>Есть ли такие реализации ?


https://en.cppreference.com/w/cpp/container/deque

As opposed to std::vector, the elements of a deque are not stored contiguously: typical implementations use a sequence of individually allocated fixed-size arrays, with additional bookkeeping, which means indexed access to deque must perform two pointer dereferences, compared to vector's indexed access which performs only one.

The storage of a deque is automatically expanded and contracted as needed. Expansion of a deque is cheaper than the expansion of a std::vector because it does not involve copying of the existing elements to a new memory location.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.