172 похожих чатов

Подскажите, пожалуйста, если знаете, аналоги реализаций polymorphic_allocator из C++ в

Расте? Если правильно понимаю, ржавые вектора можно создавать тоже с произвольными аллокаторами, но пока сам не пользовался

13 ответов

24 просмотра
dj.maxus- Автор вопроса

Юзкейс типа такого: размер вектора известен будет только в рантайме, но будет фиксированным. Тогда хотелось бы выделить память один раз и переиспользовать до конца работы программы. Возможно, создавать на этой памяти и другие объекты

dj.maxus- Автор вопроса
mental stability🥺✨
Ну просто вектор, не расширяя его?

Сейчас подумал, что мне стоило уточнить, действительно. Аналогия ещё может заключаться в том, чтобы пушить без дополнительных аллокаций и перекладываний, даже если начальная ёмкость вектора превышена Ещё хочется так, чтобы после дропа не происходил delete той памяти, которой владел вектор, чтобы при следующем вызове функции, где снова создаётся вектор, снова занять эту память, покуда жив аллокатор, который её выделил. Так происходит как раз в плюсовых реализациях этой штуки

dj.maxus
Сейчас подумал, что мне стоило уточнить, действите...

Ну звучит как кольцевой буфер, сделанный через вектор.

dj.maxus- Автор вопроса
mental stability🥺✨
Ну звучит как кольцевой буфер, сделанный через век...

Пожалуй, правда можно назвать такую сущность буфером, точнее, обёрткой над буфером

dj.maxus
Почему именно кольцевой?

А как ты ещё собираешься пушить не расширяя? Или ты хочешь пропускать операцию?

dj.maxus- Автор вопроса
mental stability🥺✨
А как ты ещё собираешься пушить не расширяя? Или т...

Типа у вектора превышен хоть и превышен текущий capacity, но аллокатор знает, что у него пока есть свободное место, чтобы положить ещё элементов рядом

dj.maxus- Автор вопроса
mental stability🥺✨
Чего?

Плохо формулирую, наверное

Есть капасити превышен, то свободного места уже нету. У вектора есть капасити и количество элементов, количество элементов всегда меньше или равно капасити

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта