我正在学习编程,而 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];
}
我被分配了一个合并排序算法(我没有上课——只是和几个帮助我的朋友一起学习),解释了算法,但没有解释实现。我想重写它,以便它适用于奇数和偶数整数。我尝试添加此代码:
if ((n % 2) != 0) int farray[halfelements + 1];
这样我就可以使用相同的整数来迭代两个后续数组。sizeof(farray) 显示为 16 个字节或 4 个整数。所以它没有调整大小。我想知道 - 初始化后是否可以调整数组大小?
编辑:我将如何实现向量?我不明白如何在循环中使用迭代器来迭代和复制值。