私は Google のsparsehashmapを使用しており、値が挿入または検索されたかどうかを調べようとしています。以下は機能しますが、明らかに2回検索しています。ダブルルックアップなしでそれを行うにはどうすればよいですか?
Element newElement = Element();
bool inserted = ((*map).insert(pair<const int64, Element>(key, newElement))).second;
Element element = (*(((*map).insert(pair<const int64, Element>(key, newElement))).first)).second;
if (inserted)
puts("INSERTED");
見つかったデフォルトの Element と挿入されている newElement を区別したいので、 Element (構造体) の内容を確認できません。クラス((*map).insert(pair<const int64, Element>(key, newElement)))
にプライベートな型を含むテンプレート型であるため、変数に割り当てる方法がわかりませんでした。sparse_hash_map