0
How to insert an element at specific position in an array of integer like int a[10]; i want to insert an element at position 2.
#before insertion a={1,2,4,5,6,7,8,9,0,0}; #after insertion a={1,2,3,4,5,6,7,8,9,0};
2 Réponses
+ 2
I don't know a whole lot about Java, so this answer will be specifically about C++.
For basic arrays, there's no built-in positional insertion like you're describing. You'll either have to write the function yourself, or use a std::vector.
In the first case, it would look something like this:
void insert(int* arr, int size, int pos, int val) {
//Walk backwards over the array from one before the end
// to insertion position, copying elements right one
//The final element gets overwritten, as in your example.
for(int i = size - 2; i >= pos; --i){
arr[i + 1] = arr[i];
}
//Put the value at the insertion point
arr[pos] = val;
}
//Then in main...
int main(){
int size = 10;
int arr[size] = {1,2,4,5,6,7,8,9,0,0};
//Insert into array of given size at position 2 the value 3.
insert(arr, size, 2, 3);
return 0;
}
A std::vector is basically an array that can resize itself as needed, and it has a build-in insert method. This makes insertion a lot easier, and the vector will automatically resize itself on insertion. Note that you have to #include <vector> to use this.
#include <vector>
int main(){
//This just says "Make a vector that can hold ints called v."
std::vector<int> v = {1,2,4,5,6,7,8,9,0,0};
//Then you use v.insert(where, what)
v.insert(2, 3);
//v is now {1,2,3,4,5,6,7,8,9,0,0} - 3 was inserted, and the vector got longer
return 0;
}
Hope this helped!
0
a[index] = value;
In your case will be: a[2] = 3;