"Я пытаюсь выяснить, как реализовать следующий код, чтобы в случае добавления чего-либо в массив, превышающий емкость, код создаст новый массив на 2 ^ n больше (т. Е. 40, 80, 160). Однако я хочу, чтобы в нем был цикл for, который будет увеличивать массив на 2 ^ n до тех пор, пока новая емкость не станет больше введенной. "
Во-первых, я думаю, что вы имеете в виду 2 * n, а не 2 ^ n.
Во-вторых, почему бы не использовать std :: vector, как говорили другие комментаторы?
В-третьих, я не до конца понимаю ваш вопрос, но звучит так, будто вы этого хотите:
int newCapacity = capacity;
while( newCapacity < n )
newCapacity *= 2;
Это кажется довольно тривиальным, так что вы можете уточнить свой вопрос?