C ++并行数组是一个定义的结构

时间:2014-01-22 00:44:36

标签: c++ arrays parallel-arrays

简单问题:

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

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

3 个答案:

答案 0 :(得分:3)

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

您可以创建两个阵列并并行处理它们。

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

答案 1 :(得分: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不会被考虑。

答案 2 :(得分:0)

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