简单的问题:
在我的作业中,我被要求计算文件中的单词并跟踪它们的频率。我要为频率创建一个并行 int 数组。
并行数组是一种特殊的数据结构,还是仅仅意味着我正在创建 2 个数组,其中一个依赖于另一个。例如,我创建了 2 个动态数组,并在循环内部更新了 for 循环中我的 i 变量。
简单的问题:
在我的作业中,我被要求计算文件中的单词并跟踪它们的频率。我要为频率创建一个并行 int 数组。
并行数组是一种特殊的数据结构,还是仅仅意味着我正在创建 2 个数组,其中一个依赖于另一个。例如,我创建了 2 个动态数组,并在循环内部更新了 for 循环中我的 i 变量。
没有这样的并行数组数据结构。
您可以创建两个数组并并行处理它们。
有一些替代方案,例如创建一个数组std::pair
,或(可能是手头任务的“正确”数组)一个std::unordered_map
(或可能是一个std::map
)。
并行数组基本上就是您在问题中提出的内容。它是由索引连接的两个不同的数组。
例如,计算温度频率的并行阵列可能是:
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
不会这样考虑。
没有什么结构是特殊的,它总是由基元组成。