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.
|
5 years ago | |
---|---|---|
cmake | 5 years ago | |
include/vector | 5 years ago | |
src | 5 years ago | |
test | 5 years ago | |
.core.yml | 5 years ago | |
.gitignore | 5 years ago | |
CMakeLists.txt | 5 years ago | |
Dockerfile | 5 years ago | |
LICENSE.txt | 5 years ago | |
README.md | 5 years ago |
README.md
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);