1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Eplankton-nut-struct

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README_en.md

nut-struct

Введение

Этот проект изначально был лабораторным заданием для курса «Структуры данных» (весна 2022 года), целью которого было практиковать программирование на C++ и понять применение или взаимосвязь между структурой данных, алгоритмом, операционной системой и компьютерной архитектурой. После длительного периода коммитов и дополнений этот проект постепенно превратился в относительно современную и полную библиотеку. Из-за загруженности ежедневной работой у меня нет времени исправлять эти части и ошибки.

Список ожидающих изменений:

  1. Отсутствие оптимизации EBO.
  2. Отсутствуют многие алгоритмы.
  3. Отсутствуют контейнеры flat_xxx и multi_xxx.
  4. Отсутствуют btree и heap.
  5. Отсутствует пользовательский Allocator для контейнеров.
  6. Недостаток комментариев и модульных тестов.
  7. Недостаточная безопасность потоков и обработки исключений.
  8. Отсутствуют type-erase и другие функции в functional.
  9. Отсутствуют схемы linear-probing и open-addressing для разрешения коллизий в hashtable, текущая схема использования separate-chaining недружелюбна к кэшу.
  10. Беспорядок в basic_string, пожалуйста, не используйте его.
  11. Вариант Option && Result, что-то похожее на Rust.
  12. И многое другое...

Ошибки:

  1. Итератор end() должен указывать на позицию end()+1, чтобы мы могли получить полуоткрытый диапазон.
  2. unique_ptr не следует использовать в узлах бинарного дерева, что значительно усложняет работу с поддеревьями и увеличивает накладные расходы.
  3. В качестве центрального контроллера deque следует использовать вложенный массив, но для простоты используется комбинация list и array, поэтому производительность кэша ухудшается, а итератор не может удовлетворить требования RandomAccess.
  4. И многое другое...

Компоненты

GitHub Gitee

Последовательный контейнер
array.h
basic_string.h
vector.h
list.h
deque.h
stack.h
queue.h

Ассоциативный контейнер
set.h
map.h
unordered_set.h
unordered_map.h

Итераторы и алгоритмы
iterator.h
algorithm.h

Прочее
type.h
functional.h
memory.h
utility.h
bitset.h
matrix.h
option.h
range.h

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Eplankton-nut-struct.git
git@api.gitlife.ru:oschina-mirror/Eplankton-nut-struct.git
oschina-mirror
Eplankton-nut-struct
Eplankton-nut-struct
master