私の目標は、(メモリ制限のない世界では) 約 10^5 x 10^5 で double で埋められる行列の最も関連性の高いエントリを格納するための効率的な構造を作成することです。行列は対称であるため、実際には (10^10)/2 の値のみが含まれます。
シミュレーションでエントリに何度もアクセスする必要があるため、高速検索が重要です。
構造を管理しやすくするために、使用される可能性が低いメンバーを削除します。インデックスが (int_x1, int_x2) の場合、たとえば x1 を含むすべてのペアを削除したいことがよくあります。
このタスクに最適な構造または構造のセットは何ですか? 2 つの int の適切なハッシュは何ですか?
移植性のために、Boost は避けたいと思います。私は現在、プログラムの他の場所で TR1 の unordered_map を使用しています。キーペアで unordered_map を再度使用することを考えていましたが、この方法でエントリを効率的に削除する方法がわかりません。また、適切なハッシュ関数がどのようになるかわかりません。
私は初心者のプログラマーなので、明白なことを述べてください。