From c84b73c3d4123919e834a14b69700f6b64d41173 Mon Sep 17 00:00:00 2001 From: Abivarman <abivarman.kandiah@etu.hesge.ch> Date: Thu, 24 Feb 2022 10:53:58 +0100 Subject: [PATCH] Add vector insert --- header/vectors.h | 1 + src/test_vectors.c | 5 +++++ src/vectors.c | 15 +++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/header/vectors.h b/header/vectors.h index b94c944..029c4b3 100644 --- a/header/vectors.h +++ b/header/vectors.h @@ -26,5 +26,6 @@ type vector_pop(vector vec); void vector_set(vector vec, int index, type element); type vector_get(vector vec, int index); type vector_remove(vector vec, int index); +void vector_insert(vector vec, type element, int index); #endif \ No newline at end of file diff --git a/src/test_vectors.c b/src/test_vectors.c index 371d5ee..50676d2 100644 --- a/src/test_vectors.c +++ b/src/test_vectors.c @@ -41,7 +41,12 @@ int main() vector_remove(test, 3); printf("New Value at index 3 : %d \n", vector_get(test, 3)); + //Test Vector Insert + vector_insert(test, 3, 3); + printf("New Value at index 3 and 4: %d, %d \n", vector_get(test, 3), vector_get(test, 4)); + //Test Vector Empty + return 0; } \ No newline at end of file diff --git a/src/vectors.c b/src/vectors.c index 5e564dd..403f49e 100644 --- a/src/vectors.c +++ b/src/vectors.c @@ -93,4 +93,19 @@ type vector_remove(vector vec, int index) } return tmp; +} + + +void vector_insert(vector vec, type element, int index) +{ + assert(index < vec->length); + + vec->length++; + + for (int i = vec->length; i > index; i--) // Ex : 0 1 2 {3} 4 5 // Index 3 , lenght 6 + { + vec->content[i] = vec->content[i-1]; + } + + vec->content[index] = element; } \ No newline at end of file -- GitLab