Giter Site home page Giter Site logo

mualphaomegaepsilon / cirdevec Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 223 KB

A C++ implementation of a Circular Double-ended Vector data-structure.

License: GNU General Public License v3.0

CMake 45.34% C++ 54.66%
data-structures optimization cpp cpp17 vector double-ended circular circular-buffer array

cirdevec's Introduction

CirDeVec - Main Page

CirDeVec, a Circular Double-ended Vector data-structure.

*STILL UNDER DEVELOPMENT

CirDeVec is a hybrid data-structure that is heavily inspired by the behaviour of circular buffers, deques, and vectors.

Table of contents

Repository folders structure

Give a look at the kriasoft's Folder Structure Conventions first if you need to, since the structure of this repository is based on that.

.
├── build/                      # Local folder for project builds
├── cmake/                      # CMake script files
├── deps/                       # Dependency libraries (3rd party submodules)
├── docs/                       # Documentation markdown files
├── include/                    # Header files
├── tests/                      # Automated tests
├── CMakeLists.txt              # CMake main script file
├── Doxyfile                    # Doxygen configuration file
├── LICENSE.md                  # License markdown file 
└── README.md                   # Readme markdown file (YOU ARE HERE)

Download CirDeVec

Using the command below you can download the content of this repository in an automatically created CirDeVec folder inside your current directory. (Git is needed)

$ git clone https://github.com/MuAlphaOmegaEpsilon/CirDeVec

Update CirDeVec

If you already downloaded the CirDeVec repository, maybe some time ago, you might want to update it. You can use the command below.

# If you aren't already inside the CirDeVec repository folder
$ cd CirDeVec
# Update the repository
$ git pull origin master

Extra-tools

Here is a list of extra-tools needed for certain purposes; a list of commands to install the tools on Ubuntu/Debian systems is also given down below:

  • Build-essential (Linux only): a collection of tools to build C and C++ projects.
    sudo apt-get install build-essential
  • Git: it automates the download of both, the repository itself and the library needed for benchmarking.
    sudo apt-get install git
  • CMake: used to create makefiles and such in an automated fashion.
    sudo apt-get install cmake
  • Doxygen: it generates documentation from source code.
    sudo apt-get install doxygen

Dependencies

  • Google Benchmark library: if you wish to benchmark the CirDeVec performance against other data structures, you need to download this.

    # If you aren't already inside the CirDeVec repository folder
    $ cd CirDeVec
    # Download the dependencies
    $ git submodule update --init

It's not over yet: check the INCLUSION, INTEGRATIONS and IMPLEMENTATIONS sections in the Table of contents.

cirdevec's People

Contributors

mualphaomegaepsilon avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.