aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleiyu3 <s444814187@gmail.com>2022-09-22 12:54:48 -0400
committerleiyu3 <s444814187@gmail.com>2022-09-22 12:54:48 -0400
commitb7d835727149e2bbc23e018251138645da8baebb (patch)
tree81bb84280dfb6eb9a7c55c974125970056996515
parent56a9a209d5b9ad0fbecd0a439b96be5c17dac841 (diff)
downloadvector_c-b7d835727149e2bbc23e018251138645da8baebb.tar.gz
vector_c-b7d835727149e2bbc23e018251138645da8baebb.zip
add find
-rw-r--r--libvector.c9
-rw-r--r--vector.h1
-rw-r--r--vector_test.c11
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
122int 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
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);
21int pop(vector_t *vec); 21int pop(vector_t *vec);
22void print_vec(vector_t vec); 22void print_vec(vector_t vec);
23void destroy_vec(vector_t *vec); 23void destroy_vec(vector_t *vec);
24int 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
118Test(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