Вопрос по c++, visual-c++, arrays – динамически изменять размер массива с ++

1

У меня есть массив, определенный как;

static double Temp_data[TABLE_SIZE];

Я хочу изменить размер массива в соответствии с пользовательским вводом. Это возможно? Пожалуйста, помогите мне. Благодарю.

Ваш Ответ

3   ответа
2

pData = new T [NUM_ELEMENTS];

В основном используя новый оператор. Читайте больше о новом из любой ссылки C ++

2

int size;
cin>>size
int *ptr = new int[size];

http://www.cplusplus.com/doc/tutorial/dynamic/

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededvectorError: User Rate Limit Exceededstd::arrayError: User Rate Limit ExceededvectorError: User Rate Limit Exceeded
8

std::vector<double> Temp_data;

Тогда вы можете использовать егоresize() функция-член, чтобы установить размер, как вы считаете нужным.

Изменить: просто чтобы быть ясно, вы обычно хотите избежать использованияnew напрямую, если можете (и в этом случае вы можете очень легко). Прямое использованиеnew является постоянным источником ошибок многих типов.std::vector обрабатывает довольно много угловых случаев, которые трудно исправитьnewгарантирует, что данные очищаются, когда они выходят из области видимости, и т. д.

Я уже говорил, и я повторю здесь: однажды у вас не было другого выбора, кроме как написать код, который использовалnew, Теперь у вас есть выбор - и вы должны его использовать. Учитывая современный компилятор и стандартную библиотеку, почти никогда нет причин выделять массивnew.

Error: User Rate Limit Exceeded gishara
Error: User Rate Limit ExceededvectorError: User Rate Limit Exceededpush_backError: User Rate Limit ExceededresizeError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededstd::vectorError: User Rate Limit Exceeded&myvector[0]Error: User Rate Limit Exceededmyvector.data().
Error: User Rate Limit Exceededreserve()Error: User Rate Limit Exceeded

Похожие вопросы