From b7d835727149e2bbc23e018251138645da8baebb Mon Sep 17 00:00:00 2001 From: leiyu3 Date: Thu, 22 Sep 2022 12:54:48 -0400 Subject: add find --- libvector.c | 9 +++++++++ vector.h | 1 + vector_test.c | 11 +++++++++++ 3 files changed, 21 insertions(+) diff --git a/libvector.c b/libvector.c index 60e6e42..69537ab 100644 --- a/libvector.c +++ b/libvector.c @@ -119,3 +119,12 @@ void destroy_vec(vector_t *vec){ free(vec->arr); } +int find(vector_t vec, int value){ + for (int i = 0; i < size(vec); i++){ + if (at(vec, i) == value){ + return i; + } + } + return -1; +} + diff --git a/vector.h b/vector.h index 078d56b..2dec5ec 100644 --- a/vector.h +++ b/vector.h @@ -21,5 +21,6 @@ void prepend(vector_t *vec, int value); int pop(vector_t *vec); void print_vec(vector_t vec); void destroy_vec(vector_t *vec); +int find(vector_t vec, int value); #endif diff --git a/vector_test.c b/vector_test.c index 2bbe1d7..dcab29b 100644 --- a/vector_test.c +++ b/vector_test.c @@ -115,5 +115,16 @@ Test(vectortests, pop_test){ cr_assert(pop(&vec)==3); } +Test(vectortests, find_test){ + push(&vec, 3); + push(&vec, 6); + push(&vec, 9); + + cr_assert(find(vec, 9)==2); + + cr_assert(find(vec, 99)==-1); + +} + -- cgit v1.2.3