diff options
| -rw-r--r-- | libvector.c | 9 | ||||
| -rw-r--r-- | vector.h | 1 | ||||
| -rw-r--r-- | vector_test.c | 11 |
3 files changed, 21 insertions, 0 deletions
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){ | |||
| 119 | free(vec->arr); | 119 | free(vec->arr); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | int find(vector_t vec, int value){ | ||
| 123 | for (int i = 0; i < size(vec); i++){ | ||
| 124 | if (at(vec, i) == value){ | ||
| 125 | return i; | ||
| 126 | } | ||
| 127 | } | ||
| 128 | return -1; | ||
| 129 | } | ||
| 130 | |||
| @@ -21,5 +21,6 @@ void prepend(vector_t *vec, int value); | |||
| 21 | int pop(vector_t *vec); | 21 | int pop(vector_t *vec); |
| 22 | void print_vec(vector_t vec); | 22 | void print_vec(vector_t vec); |
| 23 | void destroy_vec(vector_t *vec); | 23 | void destroy_vec(vector_t *vec); |
| 24 | int find(vector_t vec, int value); | ||
| 24 | 25 | ||
| 25 | #endif | 26 | #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){ | |||
| 115 | cr_assert(pop(&vec)==3); | 115 | cr_assert(pop(&vec)==3); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | Test(vectortests, find_test){ | ||
| 119 | push(&vec, 3); | ||
| 120 | push(&vec, 6); | ||
| 121 | push(&vec, 9); | ||
| 122 | |||
| 123 | cr_assert(find(vec, 9)==2); | ||
| 124 | |||
| 125 | cr_assert(find(vec, 99)==-1); | ||
| 126 | |||
| 127 | } | ||
| 128 | |||
| 118 | 129 | ||
| 119 | 130 | ||
