У меня есть файл input.txt
как:Как создать массив заданных значений из файла?
n
a1 a3 a3 an
где n
является количество элементов (размер массива), и a1
a2
a3
an
являются элементы.
Как создать массив из a1
, a2
, a3
, an
объектов? Я попытался сделать это, используя пример из вопроса this, но, насколько я понимаю, я не могу создать массив в цикле, поскольку он будет создавать его на каждой итерации.
Начните с осознанием того, что C++ не имеет [массивов переменной длины] (http://en.wikipedia.org/wiki/Variable-length_array) или других динамических массивов. У этого * есть * есть ['std :: vector'] (http://en.cppreference.com/w/cpp/container/vector). Затем подумайте, где вам нужно объявить этот вектор, чтобы он был доступен как внутри цикла *, так и после завершения цикла и не «воссоздан» внутри цикла. –
(1) прочитайте первую строку и преобразуйте строку в целое число. (2) объявить или выделить массив (или другую подходящую структуру данных) длины 'n' (данный в (1)). (3) прочитайте следующую строку файла и проанализируйте элементы 'n' (вы не упомянули их типы, поэтому я оставляю для вас определение * parse *). Если это не поможет, я думаю, вам нужно сделать некоторые учебные пособия на C++, чтобы основываться на основах языка. Например, вы можете выполнить поиск в Интернете на «C++ чтение данных из файла». – lurker
Поскольку 'n' известно заранее, одно динамическое распределение также делает трюк. Но я уверен, что у вас нет высоких требований к производительности, поэтому просто придерживайтесь 'vector' и, возможно, используйте' reserve'. –