diff options
author | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-07-10 19:44:04 +0300 |
---|---|---|
committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-07-10 19:44:04 +0300 |
commit | 645a8026b6f6a89cda5a24d96cf3de39c3ab32e1 (patch) | |
tree | 9388612433ba6a1325ece8a50830b9299e7cb598 /example_vec/new/main.c | |
download | ngc-645a8026b6f6a89cda5a24d96cf3de39c3ab32e1.tar.gz ngc-645a8026b6f6a89cda5a24d96cf3de39c3ab32e1.zip |
initial commit
Diffstat (limited to 'example_vec/new/main.c')
-rw-r--r-- | example_vec/new/main.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/example_vec/new/main.c b/example_vec/new/main.c new file mode 100644 index 0000000..a00c35c --- /dev/null +++ b/example_vec/new/main.c @@ -0,0 +1,33 @@ +#include "vec.h" + +typedef ints = vec[int](); + +#define foreach(name, i, s) \ + for (name##_iter i = name##_begin(s); !name##_end(s, i); i = name##_next(i)) + +int main() +{ + struct ints ints = ints_create(0); + for (int i = 0; i < 1000000; ++i) { + ints_append(&ints, i); + } + assert(ints_len(&ints) == 1000000); + + for (int i = 0; i < 1000000; ++i) { + int *v = ints_at(&ints, i); + assert(v && *v == i); + } + + int i = 0; + foreach(ints, iter, &ints) { + assert(iter && *iter == i); + i++; + } + + for (int i = 1000000 - 1; i >= 0; --i) { + ints_remove(&ints, i); + } + assert(ints_len(&ints) == 0); + + ints_destroy(&ints); +} |