...私が探してる私は、C#/。NET技術を用いた高速マーチングアルゴリズムをコード化しようとしている旧C++/STLプログラマだ
C#の辞書に一つだけのルックアップを挿入して下さい - または - 存在しない場合は指定されたキーに値を挿入するSTLメソッド "map :: insert"に相当し、そうでない場合は既存のキーと値のペアにイテレータを返します。
私が見つけた唯一の方法は、二つのルックアップでこれを行います。TryGetValue内側1およびAddメソッドで別の1:
List<Point> list;
if (!_dictionary.TryGetValue (pcost, out list))
{
list = new List<Point>();
dictionary.Add (pcost, list);
}
list.Add (new Point { X = n.x, Y = n.y });
が、これは.NETコンテナを使用しては不可能である理由を説明する何かがありますか?または、私はいくつかのポイントを逃したのですか?
ありがとうございました。
のような素晴らしいトリックがたくさんあります。プロダクションコードでも2つのルックアップがありますか? – CodingBarfield
デュアルルックアップは本当に重要ですか?時間の差はわずかです。 –
@Chris:何? ) - 私はあなたが問題の場所にコードを表示することができます(ああ待って、_私は法的理由のためにすることはできません...) – sehe