Can you resize a C++ array after initialization?
arrays, c++, resize, sizeof
Solution
C++ arrays are fixed in size.
If you need a "resizable array", you'll want to use std::vector instead of an array.
Problem
I'm learning to program, and C++ is my first language. Don't bother using pointers to show me - I don't understand them yet, and won't bother until I have more free time to dedicate to this. ``` int mergeSort() { const int n = 9; int originalarray[n] = {1, 3, 5, 7, 9, 2, 4, 6, 8}; const int halfelements = (sizeof(originalarray) / sizeof(int)) / 2; int farray[halfelements]; int sarray[halfelements]; for (int i = 0; i < halfelements; i++) { farray[i] = originalarray[i]; } for (int i = halfelements, x = 0; i < (halfelements * 2); i++, x++) { sarray[x] = originalarray[i]; } ``` I was assigned (I'm not taking classes - just learning with a few friends helping me out) a merge sort algorithm, with the algorithm explained but not the implementation. I want to rewrite this so it will work for both odd and even integers. I tried adding this code: ``` if ((n % 2) != 0) int farray[halfelements + 1]; ``` So that I could use the same integer to iterate over both subsequent arrays. A sizeof(farray) is showing to be 16 bytes, or 4 integers. So it isn't resizing. What I want to know - is it possible to resize arrays after they initialized? Edit: How would I implement a vector? I don't understand how to use iterators in a loop to iterate over and copy the values.