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