简单问题:
对于我的作业,我被要求计算文件中的单词并跟踪它们的频率。我要为频率创建一个并行的int数组。
并行数组是一种特殊的数据结构,还是仅仅意味着我创建了2个数组,其中一个数组依赖于另一个数组。例如,我创建了2个动态数组,并在for循环内更新了for循环中的i变量。
答案 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)
没有结构是特殊的,它总是由基元组成。