Estruturas de dados construídas personalizadas para algumas das estruturas de dados mais usadas em C ++
O objetivo deste repositório é demonstrar como contêineres e estruturas de dados funcionam sob o capô. A maioria das APIs corresponde à API padrão encontrada nas bibliotecas STL e Boost. De fato, existem poucos aprimoramentos e acréscimos valiosos ao que as bibliotecas padrão oferecem.
As seguintes estruturas de dados são implementadas no momento da redação deste readme:
Exceto String e Trie que são específicos do tipo, todas as outras estruturas de dados são implementadas genericamente como modelos, tornando -os utilizáveis em diferentes tipos de dados.
Nota: as especializações podem ter que ser definidas para tipos não primitivos usando métodos especiais dentro de um tipo de estrutura de dados aplicável
Para biblioteca pronta para usar, consulte os lançamentos
A maioria das estruturas de dados usa modelos, eliminando assim a necessidade de um arquivo de origem separado. Por exemplo, Vector pode ser usado apenas como cabeçalho. A biblioteca gerada será necessária apenas para tipos com implementação não genérica e um arquivo de origem separado. Até a redação deste ReadMe, você precisa do seu aplicativo para vincular Trie a libCustomDataStructures.so String
Para a construção do projeto, use o script de construção na árvore de origem com -a opção da seguinte forma:
./build.sh -a
Saída gerada limpa e construir artefatos com a opção -c
./build.sh -c
Para saber detalhes de uso para outras opções, como o tipo de compilação e a configuração do gerador, use a opção -h com o script
./build.sh -h
O aplicativo de carrinho de compras serve como uma referência de uso das estruturas de dados personalizadas implementadas aqui.
Se escrever código para estruturas de dados e algoritmos em C ++ e DogFooding fizer você marcar como eu, tenho certeza de que você gostará de contribuir para este projeto. Se você conhece alguém que possa estar interessado em esse trabalho, informe -o. Estou procurando alguns aprimoramentos e adições interessantes e uma revisão crítica da implementação existente.
Como um contribuidor em potencial, você é bem -vindo
Eu sou acessível em [email protected] para qualquer coisa