Войти
ФлеймФорумПрограммирование

Крестобоги, где буфер а? (4 стр)

Страницы: 1 2 3 4
#45
14:16, 19 окт. 2017

nes
> std::array не так давно появился, странно что его небыло в первых версиях stl,
> тогда требования к памяти были в разы выше.
В те времена кульные какиры презрительно смотрели на "дельфинов", у которых в дебаге проверялась корректность индекса. Поэтому какирам int[] хватало. Ну иногда 4 месяца баг ловили, зато можно было потом рассказывать кульные какирские истории.


#46
14:18, 19 окт. 2017

desss
Нет, мне просто нужно в определенный момент нарастить массив, его конец я знаю и так.

#47
14:19, 19 окт. 2017

desss
>Или, как тарас предожил, размер хранить в куче?
Я это предложил еще в самом начале.

#48
14:22, 19 окт. 2017

nes
> его конец я знаю и так.
Поздравляю. Такие извращенские пожелания комитет не очень долго рассматривает.

То, что ты хочешь - контейнер из одного указателя, который не знает свой размер, чудовищно опасная и колхозная штука.
Ни проверок, ни безопасности, ни итераторов, ни удобства использования.
В стандарт такое говно не добавляют.

nes
> Я это предложил еще в самом начале.
Увидел, т.е. размер все-таки есть? Это добавляют всегда проверку на nullptr и индирекцию при обращении.
Очень плохо соответствует концепции - мы ничего не платим.
Обращения к элементу вектора не стоят ничего сверх того, что минимально возможно.

#49
14:23, 19 окт. 2017

nes
> его конец я знаю и так.
Откуда?

#50
14:28, 19 окт. 2017

desss
То, что я хочу вот:

+ Показать
#51
14:30, 19 окт. 2017

nes
> Если буфер не пуст, данные его в памяти буду иметь такую структуру:
А емкость для реаллокации откуда он знает? Или он всегда заполнен до конца?
Если пустой буфер всегда имеет что-то в куче, зачем поле размера в кучу отправлять? Из одного места, в намного худшее переложил.

#52
14:33, 19 окт. 2017

По факту что-то в духе:

+ Показать

#53
14:43, 19 окт. 2017

Не понял, а какая разница, теперь пустой буфер ещё больше жрёт.

#54
14:46, 19 окт. 2017

nes
Понятно. Неплохо проверку на nullptr выкинул. Зачем 4 ноля в emptyData? Для мнимой безопасности?
Ну в общем еще немного, и ты себе его допишешь.

Ну нет этого в stl. Что дальше? Как и много чего другого.
И у многих других языков в стандартной либе такого контейнера нет.

1 frag / 2 deaths
> теперь пустой буфер ещё больше жрёт.
Все пустые буферы ссылаются на один участок памяти.

Он кстати с stl плохо дружит.
std::vector нормально работает с типами у которых нет конструктора по-умолчанию.
А твой буфер при ресайзе имеет с ними проблемы.

#55
14:53, 19 окт. 2017

desss
>Зачем 4 ноля в emptyData? Для мнимой безопасности?
Безопаснее 8 байт в данные запилить, под размер указателя на x64 наверное.

Страницы: 1 2 3 4
ФлеймФорумПрограммирование

Тема в архиве.