В основном я хочу дублировать, чтобы изменить размер массива. Следующей функцией является поиск следующего доступного местоположения в массиве. После следующего нажатия 10, которое является максимальной емкостью, я хочу, чтобы он вызывал дубликат. В основном дублируйте вызов, если массив найден в полной функции в следующей функции.Как я могу назвать эту функцию void другой функцией?
Проблема в том, что когда я получаю цикл до 10 чисел, он терпит неудачу на 11-м. После того, как 10-й элемент находится, он переходит в дублируемую функцию, затем переходит к указателю, затем через массив, а затем он просто продолжает цикл, поэтому, когда я использую свою функцию для просмотра общего количества элементов, она все еще говорит 10 , что означает, что maxsize
не меняется. Я не понимаю, почему?
void ProgramOne<Type>::Next(Type & y)
{
if (!IsFull())
{
if (count < maxsize)
{
bag[count] = y;
count++;
}
}
else
{
Duplicate();
}
}
Я пытаюсь вызвать эту
void ProgramOne<Type>::Duplicate()
{
int *bagB = new int[maxsize * 2];
for (int i = 0; i < maxsize; i++)
{
bagB[i] = bag[i];
}
delete[] bag;
bag = bagB;
}
Кажется, что в 'Duplicate' есть некоторые отсутствующие фигурные скобки. – jxh
Что вы пытались, и почему это не сработало? – jxh
Я попытался сделать int, скажем, f, g, но потом я подумал, что это потребует ввода и должно быть в основном. Затем я попробовал (сумка, размер), но мешок - это указатель, так что это тоже не сработает. –