Предположим, что в одной задаче, мы должны объявить массив п размера, где 1 <= n <= 1000000000
разница между методами инстанцировании массива
Есть два (может быть больше) способов сделать это:
int arr[1000000001];
и может работать с пространством по мере необходимости в соответствии с вводом.Можно сначала спросить пользователя размер массива, а затем создать экземпляр массива:
CIN >> п; int arr [n];
Я хочу знать, каковы преимущества и недостатки обоих методов.
Какой из них будет быстрее между ними? Векторы не так быстро, как массивы, поэтому вы не можете идти с этой опцией всегда. – user3159685
@ user3159685 Вы действительно оценили свою программу, чтобы узнать, вызывает ли тип массива узкое место? Если нет, то не беспокойтесь об этом (во всяком случае, 'vector :: operator []' будет оптимизирован для одной инструкции арифметики указателя + загрузки или хранения с использованием любого современного, достойного компилятора и реализации stdlib). Если, однако, это ** фактически ** является узким местом, то вы всегда можете пойти с 'operator new'. –