LINUX.ORG.RU

Кому-нибудь попадался на глаза форк гугловского sparsetable для современного C++?

 


0

4

Речь вот об этой штуке из состава sparsehash: sparsetable.

Код этого sparsetable написан еще для C++03, поэтому он не поддерживает move-семантику и не может работать с moveable-only типами.

Кроме того, судя по комментариям в коде, там не обеспечивается exception safety при вставке новых элементов. И, что еще хуже, в случае нехватки памяти вызывается exit(1) вместо выброса std::bad_alloc (причина сего поведения понятна, но от этого не легче).

Мне попался форк этой реализации в sparsepp, но там, например, нет такого полезного параметра, как размер одной группы.

Может кто-то поделится ссылкой на адаптацию гугловского sparsetable для современного C++ (хотя бы C++11)?

★★★★★

Ответ на: комментарий от dataman

Это реализации хэш-таблиц.

Мне же нужен именно вектор, в котором значительная часть элементов не имеет значения, но нужен доступ по индексу элемента. Как раз то, что делает sparsetable из состава sparsehash.

PS. Пробовал разные типы ассоциативных контейнеров, но все они заметно проигрывают для моего сценария этому самому sparsetable. Поэтому ищется именно sparsetable, а не какая-то из вариаций spase hash/map.

PPS. Но на реализацию segmented_vector из unordered_dense посмотрю.

eao197 ★★★★★
() автор топика
Последнее исправление: eao197 (всего исправлений: 1)