1

简单的问题:

在我的作业中,我被要求计算文件中的单词并跟踪它们的频率。我要为频率创建一个并行 int 数组。

并行数组是一种特殊的数据结构,还是仅仅意味着我正在创建 2 个数组,其中一个依赖于另一个。例如,我创建了 2 个动态数组,并在循环内部更新了 for 循环中我的 i 变量。

4

3 回答 3

3

没有这样的并行数组数据结构。

您可以创建两个数组并并行处理它们。

有一些替代方案,例如创建一个数组std::pair,或(可能是手头任务的“正确”数组)一个std::unordered_map(或可能是一个std::map)。

于 2014-01-22T00:47:43.737 回答
3

并行数组基本上就是您在问题中提出的内容。它是由索引连接的两个不同的数组。

例如,计算温度频率的并行阵列可能是:

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不会这样考虑。

于 2014-01-22T00:48:19.783 回答
0

没有什么结构是特殊的,它总是由基元组成。

于 2014-01-22T00:50:58.893 回答