mirror of https://github.com/zeldaret/mm.git
![]() * git subrepo pull tools/asm-differ --force
subrepo:
subdir: "tools/asm-differ"
merged: "ae408664a"
upstream:
origin: "https://github.com/simonlindholm/asm-differ"
branch: "main"
commit: "ae408664a"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull (merge) tools/fado --force
subrepo:
subdir: "tools/fado"
merged: "8d896ee97"
upstream:
origin: "git@github.com:EllipticEllipsis/fado.git"
branch: "master"
commit: "8d896ee97"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull tools/graphovl --force
subrepo:
subdir: "tools/graphovl"
merged: "dab4addae"
upstream:
origin: "https://github.com/AngheloAlf/graphovl.git"
branch: "master"
commit: "dab4addae"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull tools/z64compress --force
subrepo:
subdir: "tools/z64compress"
merged: "43035d97f"
upstream:
origin: "https://github.com/z64me/z64compress.git"
branch: "main"
commit: "43035d97f"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* git subrepo pull tools/ZAPD --force
subrepo:
subdir: "tools/ZAPD"
merged: "23929ec93"
upstream:
origin: "https://github.com/zeldaret/ZAPD.git"
branch: "master"
commit: "23929ec93"
git-subrepo:
version: "0.4.3"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "2f68596"
* Revert "git subrepo pull tools/z64compress --force"
This reverts commit
|
||
---|---|---|
.. | ||
.gitrepo | ||
.travis.yml | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
vc_vector.c | ||
vc_vector.h | ||
vc_vector_test.c | ||
vc_vector_test.h |
README.md
vc_vector
Fast simple C vector implementation
Usage
Basic
#include "vc_vector.h"
int main() {
// Creates an empty vector with the default reserved size
// and without custom deleter. Vector will contain 'int'
vc_vector* v = vc_vector_create(0, sizeof(int), NULL);
if (!v) {
return 1;
}
const int count = 10;
for (int i = 0; i < count; ++i) {
// The function takes a pointer to the elements,
// but the vector will make a copy of the element
vc_vector_push_back(v, &i);
}
// Print each vector element
for (void* i = vc_vector_begin(v);
i != vc_vector_end(v);
i = vc_vector_next(v, i)) {
printf("%u; ", *(int*)i);
}
vc_vector_release(v);
return 0;
}
Advanced
#include "vc_vector.h"
struct Item {
int val1;
int val2;
};
int main() {
const int n = 10;
// Creates an empty vector with the reserved size for the 'n' elements
// and with custom deleter 'free'. Vector will contain pointers to 'Item'
vc_vector* v = vc_vector_create(n, sizeof(struct Node*), free);
if (!v) {
return 1;
}
struct Item* item = NULL;
const int count = n + 1;
// Vector automatically increases the reserved size when 'n + 1' will be added
for (int i = 0; i < count; ++i) {
// Creating item
item = malloc(sizeof(struct Item));
if (!item) {
continue;
}
item->val1 = i;
item->val2 = 0;
// Pushing to the end of the vector
if (!vc_vector_push_back(v, item)) {
// If the item was not pushed, you have to delete it
free(item);
}
}
// ...
// Calls custom deleter 'free' for all items
// and releases the vector
vc_vector_release(v);
return 0;
}