Re[12]: про многословность
От: T4r4sB Россия  
Дата: 05.02.25 13:43
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, T4r4sB, Вы писали:


TB>>Здравствуйте, netch80, Вы писали:


N>>>Ну если в большинстве корзин 0 или 1 элемент (GCC поддерживает по умолчанию load factor, равный 1) — это совмещено с самими корзинами.


TB>>Каждая корзина — в своей области памяти. Все равно по аллокации на элемент


N>Почему ты так думаешь?


Пртому что указатели на элементы сохраняются при перестроении

N>Смотрю на реализацию GCC. Есть массив корзин, динамически аллоцируемый целым куском. Каждый элемент корзины — структура из значения и указателя на следующий такой же элемент. Для простоты демонстрации это выглядит где-то так:


N>[c++]

N>struct bucket_element {
N> Value value; // по факту просто область памяти, если !present
N> bool present;
N> struct bucket_element *next;

А еще там есть using __bucket_type=__node_base*


N>Массив выделяется куском.


Массив указателей на ноды
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.