1

簡単な質問:

私の課題では、ファイル内の単語を数え、その頻度を追跡するように求められました。周波数の並列 int 配列を作成します。

並列配列は特別なデータ構造ですか、それとも単に 2 つの配列を作成していて、一方が他方に依存していることを意味しますか? たとえば、2 つの動的配列を作成し、for ループからの i 変数に関してループ内で両方を更新します。

4

3 に答える 3

3

そのような並列配列データ構造はありません。

2 つの配列を作成し、それらを並行してアドレス指定できます。

std::pair、または(おそらく当面のタスクに「正しい」もの)std::unordered_map(またはおそらくstd::map代わりに)の配列を作成するなど、いくつかの代替手段があります。

于 2014-01-22T00:47:43.737 に答える
3

並列配列は、基本的にあなたが質問で主張するものです。これは、インデックスで接続された 2 つの異なる配列です。

たとえば、温度の周波数をカウントする並列配列は次のようになります。

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 に答える