C ++ — это параллельный массив определенной структуры

Простой вопрос:

Для моего задания меня просят подсчитать слова в файле и отслеживать их частоту. Я должен создать параллельный массив int для частоты.

Является ли параллельный массив специальной структурой данных, или это просто означает, что я создаю 2 массива, где один зависит от другого. Например, я создаю 2 динамических массива и обновляю оба в цикле относительно моей переменной i из цикла for.

1

Решение

Параллельный массив — это то, что вы задаете в своем вопросе. Это два разных массива, связанных индексом.

Например, параллельный массив частот подсчета температур может быть:

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 не будет рассматриваться таким образом.

3

Другие решения

Не существует структуры данных параллельного массива как таковой.

Вы можете создать два массива и обращаться к ним параллельно.

Есть несколько альтернатив, таких как создание массива std::pairили (вероятно, «правильный» для поставленной задачи) std::unordered_map (или, возможно, std::map вместо).

3

Ни одна структура не является особенной, она всегда состоит из примитивов.

0
По вопросам рекламы [email protected]