2

私は、ArcGIS の結合機能と非常によく似た処理を C/C++ で行う必要のあるコードに取り組んでいます。参照: http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Combining%20multiple%20rasters

C++ コードは、複数の非常に大きなラスター データ ファイル (2GB 以上) をチャンクで読み取り、一意の組み合わせを見つけて、1 つのマップに出力します。たとえば、3 つのマップがあり、3 つのマップの最初のセルに <1,3,5> が存在する場合、<1,3,5> の後続のすべてのインスタンスが最終的に同じキーを持つようにします。出力マップ。

マップを保存するには、どの STL コンテナーを使用すればよいですか? ファイルをチャンクで読み込むと、プロジェクトがさらに複雑になります。アルゴリズムは非常に高速である必要があるため、O(n) の複雑さを持つベクトルを検索に使用することはできません。現在、unsorted_multimaps の unsorted_map を使用することを考えていますが、これが正しいかどうか、必要なパフォーマンスが得られるかどうかはわかりません。

何かご意見は?

4

1 に答える 1

1

はい、std::map または std::unordered_map が正しい選択です。順序が必要ない場合は、 unordered_map の方が高速でコンパクトです。さらに高速なものが必要な場合は、他のマップ実装に置き換えることができます。

std::tuple や std::array のようなコンパクトなものをキーに使用します。

于 2012-07-28T00:11:48.363 に答える