你可以在初始化后调整C++数组的大小吗?

jke*_*eys 9 c++ arrays resize sizeof

我正在学习编程,而C++是我的第一语言.不要打扰使用指针来展示我 - 我还不了解它们,并且在我有更多的空闲时间专注于此之前不会打扰.

    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];
    }
Run Code Online (Sandbox Code Playgroud)

我被分配(我不上课 - 只是与几个朋友帮我解决)合并排序算法,算法解释但不是实现.我想重写这个,所以它适用于奇数和偶数整数.我尝试添加此代码:

if ((n % 2) != 0) int farray[halfelements + 1];
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用相同的整数来迭代两个后续数组.sizeof(farray)显示为16个字节或4个整数.所以它没有调整大小.我想知道的是 - 是否可以在数组初始化后重新调整大小?

编辑:我如何实现向量?我不明白如何在循环中使用迭代器迭代并复制值.

Leg*_*ion 18

C++数组的大小是固定的.

如果你需要一个"可调整大小的数组",你将需要使用std :: vector而不是数组.