Построенные структуры данных для некоторых из наиболее широко используемых структур данных в C ++
Цель этого репо - продемонстрировать, как контейнеры и структуры данных работают под капюшоном. Большая часть API соответствует стандартному API, найденному в библиотеках STL и Boost. На самом деле, существует мало ценных улучшений и дополнений к тому, что предлагают стандартные библиотеки.
Следующие структуры данных реализованы на момент написания этой Readme:
За исключением String и Trie , которые являются специфическими типами, все другие структуры данных в целом реализуются как шаблоны, которые делают их пригодными для различных данных датов.
Примечание. Специализации, возможно, должны быть определены для непримидных типов с использованием специальных методов в применимом типе структуры данных
Для готового к использованию библиотеки, проверьте выпуски
Большинство структур данных используют шаблоны, что устраняет необходимость отдельного исходного файла. Например, Vector может использоваться только в качестве заголовка. Сгенерированная библиотека потребуется только для типов с негенерической реализацией и отдельным исходным файлом. Начиная с написания этого Readme, вам нужно ваше приложение для связи с libCustomDataStructures.so Так только если вы используете структуры данных String и Trie .
Для строительства проекта используйте сценарий сборки в исходном дереве с опцией -a следующим образом:
./build.sh -a
Чистые генерируемые выходные и строительные артефакты с опцией -c
./build.sh -c
Чтобы узнать детали использования для других вариантов, таких как тип сборки и конфигурация генератора, используйте опцию -h со скриптом
./build.sh -h
Приложение для корзины для покупок служит ссылкой на использование пользовательских структур данных, реализованных здесь.
Если написание кода для структур данных и алгоритмов в C ++ и Dogfooding заставит вас отметить, как я, я уверен, что вам понравится внести свой вклад в этот проект. Если вы знаете кого -то, кто может быть заинтересован в такой работе, дайте им знать. Я ищу некоторые захватывающие улучшения и дополнения, а также критический обзор существующей реализации.
Как потенциальный участник, вы можете
Я доступен по адресу [email protected] для чего угодно