Расте? Если правильно понимаю, ржавые вектора можно создавать тоже с произвольными аллокаторами, но пока сам не пользовался
Юзкейс типа такого: размер вектора известен будет только в рантайме, но будет фиксированным. Тогда хотелось бы выделить память один раз и переиспользовать до конца работы программы. Возможно, создавать на этой памяти и другие объекты
Ну просто вектор, не расширяя его?
Сейчас подумал, что мне стоило уточнить, действительно. Аналогия ещё может заключаться в том, чтобы пушить без дополнительных аллокаций и перекладываний, даже если начальная ёмкость вектора превышена Ещё хочется так, чтобы после дропа не происходил delete той памяти, которой владел вектор, чтобы при следующем вызове функции, где снова создаётся вектор, снова занять эту память, покуда жив аллокатор, который её выделил. Так происходит как раз в плюсовых реализациях этой штуки
Ну звучит как кольцевой буфер, сделанный через вектор.
Пожалуй, правда можно назвать такую сущность буфером, точнее, обёрткой над буфером
Почему именно кольцевой?
А как ты ещё собираешься пушить не расширяя? Или ты хочешь пропускать операцию?
Типа у вектора превышен хоть и превышен текущий capacity, но аллокатор знает, что у него пока есть свободное место, чтобы положить ещё элементов рядом
Плохо формулирую, наверное
Есть капасити превышен, то свободного места уже нету. У вектора есть капасити и количество элементов, количество элементов всегда меньше или равно капасити
Это разумеется
Обсуждают сегодня