1

このようないくつかの数値を保存する必要があります

key => (four integers, between 0 to 30 (maxmimum), -1 means NULL)
125 => (1,3,5,20)
80 => (4,2,-1,-1)
20 => (10,12,21,3)
...

最速のランダム アクセスが必要です。実際には、アプリケーションのデータのテーブルになります。これらの値をヘッダー内に格納し、必要な場所で呼び出すことを考えました。私は主にスクリプト (PHP/Python) を作成しており、そこには配列/辞書があります。しかし、C++ はどうでしょうか。

これまでのところ、map と unordered_map (前者の方がランダム アクセスに適しているようです) を見つけました。

4

1 に答える 1

2

std::unordered_mapこれを保持するためにa を使用できますstd::unordered_map<int, std::array<int, 4>>

を使用するunordered_mapと、キーによるアクセスが高速になります。このドキュメントから:

unordered_map コンテナーは、キーによって個々の要素にアクセスする場合、map コンテナーよりも高速ですが、要素のサブセットを使用した範囲反復では一般的に効率が低くなります。

于 2013-10-29T17:24:54.780 に答える