You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Arwed Mett 972d3bbadf fixed cmake find_package 1 year ago
cmake basic structure 1 year ago
include/vector implemented vector 1 year ago
src implemented vector 1 year ago
test implemented vector 1 year ago
.core.yml added drone file 1 year ago
.gitignore basic structure 1 year ago
CMakeLists.txt fixed cmake find_package 1 year ago
Dockerfile basic structure 1 year ago
LICENSE.txt basic structure 1 year ago
README.md fixed markdown errors in readme 1 year ago

README.md

Build Status

vector

A simple implementation of a dynamic vector, which automatically allocates and releases memory.

Installation

The library can either be downloaded as a prebuild version or compiled from source.

To compile the library execute the following steps:

git clone --branch <version> https://gitea.metthub.de/Pfeifenjoy/vector
cmake -DCMAKE_BUILD_TYPE=Release -H. -Bbuild
cmake --build build --target install

This will download the source code, compile and install it. Please replace <version> by your desired version of this library.

Usage with cmake

The library can be easily included into cmake projects by importing the targets.

find_package(vector <version> EXACT REQUIRED)
target_link_libraries(<target> PRIVATE vector::vector-shared)
#or
target_link_libraries(<target> PRIVATE vector::vector-static)

Hereby <target> is your target, which can be linked either to the shared or the static vector library.

Interface

The vector can be used as follows:

vector_t vector;
vector_init(&vector, sizeof(int)); //initialize vector of ints

int i = 42;
vector_push(&vector, &i); //copy i to the end of the vector

printf("The vector has %zu elements.\n", vector.length);

int *a = (int *) vector_get(&vector, 0); //get the first element
printf("Using element of vector: %d\n", *a);

vector_delete(&vector, 0); //delete the first element

vector_destroy(&vector);