feat: add vector
This commit is contained in:
@@ -9,6 +9,7 @@ void test_hm1();
|
||||
void test_q1();
|
||||
void test_str1();
|
||||
void test_str2();
|
||||
void test_v1();
|
||||
|
||||
int main(void) {
|
||||
puts("==== [Running Hashmap tests] ====");
|
||||
@@ -27,5 +28,10 @@ int main(void) {
|
||||
puts("OK!");
|
||||
puts("");
|
||||
|
||||
puts("==== [Running Vector tests] ====");
|
||||
test_v1();
|
||||
puts("OK!");
|
||||
puts("");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
34
test/vector/v1.c
Normal file
34
test/vector/v1.c
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "../../vector/myvector.h"
|
||||
|
||||
typedef struct my_elem {
|
||||
char name[32];
|
||||
int age;
|
||||
} my_elem_s;
|
||||
|
||||
void test_v1() {
|
||||
/* Allocate a new vector */
|
||||
size_t elem_size = sizeof(my_elem_s);
|
||||
mcl_vector_s *v = mcl_vector_new(10, elem_size);
|
||||
assert(mcl_vector_size(v) == 0);
|
||||
assert(mcl_vector_capacity(v) == 16);
|
||||
|
||||
/* Push an element */
|
||||
my_elem_s e1 = {
|
||||
.age = 21,
|
||||
.name = "John",
|
||||
};
|
||||
mcl_vector_push(v, &e1);
|
||||
assert(mcl_vector_size(v) == 1);
|
||||
|
||||
/* Retrieve an element (Remember to FREE) */
|
||||
my_elem_s *e1_v = (my_elem_s *)mcl_vector_get(v, 0);
|
||||
printf("name: %s, age: %d\n", e1_v->name, e1_v->age);
|
||||
free(e1_v);
|
||||
|
||||
/* Deallocate the vector */
|
||||
mcl_vector_free(v);
|
||||
}
|
||||
Reference in New Issue
Block a user