Простой вопрос:
Для моего задания меня просят подсчитать слова в файле и отслеживать их частоту. Я должен создать параллельный массив int для частоты.
Является ли параллельный массив специальной структурой данных, или это просто означает, что я создаю 2 массива, где один зависит от другого. Например, я создаю 2 динамических массива и обновляю оба в цикле относительно моей переменной i из цикла for.
Параллельный массив — это то, что вы задаете в своем вопросе. Это два разных массива, связанных индексом.
Например, параллельный массив частот подсчета температур может быть:
int tempVal [100];
size_t tempCount[100];
и значение температуры по индексу 42 имеет частоту, определяемую tempCount[42]
,
Пуристы будут утверждать (и у них есть точка зрения), что лучше предоставить один массив структуры, такой как:
typedef struct {
int val;
size_t count;
} tFreq;
tFreq tempFreq[100];
и C ++ имеет коллекции, которые сделают это для вас, такие как std::pair
, Но, если ваше назначение специально требует параллельных массивов, я подозреваю, std::pair
не будет рассматриваться таким образом.
Не существует структуры данных параллельного массива как таковой.
Вы можете создать два массива и обращаться к ним параллельно.
Есть несколько альтернатив, таких как создание массива std::pair
или (вероятно, «правильный» для поставленной задачи) std::unordered_map
(или, возможно, std::map
вместо).
Ни одна структура не является особенной, она всегда состоит из примитивов.