Überprüfung Wert existiert in einer std :: map - C ++

Ich weiß finden Methode findet die mitgelieferten Schlüssel in std::map und zurück einen iterator auf das element. Gibt es trotzdem, um den Wert zu finden und bekommen Sie einen iterator auf das element? Was ich tun müssen, ist zu prüfen, angegebene Wert existiert in std::map. Ich habe dies getan, indem die Schleife alle Elemente in der Karte anzeigen und vergleichen. Aber ich wollte wissen, gibt es einen besseren Ansatz für dieses.

Hier ist, was ich schrieb

bool ContainsValue(Type_ value)
{
    bool found = false;
    Map_::iterator it = internalMap.begin(); //internalMap is std::map
    while(it != internalMap.end())
    {
        found = (it->second == value);
        if(found)
            break;
        ++it;
    }
    return found;
}

Bearbeiten

Wie wäre es mit einer anderen Karte intern speichert, Wert,Schlüssel-Kombination. Also ich kann call finden? Ist finden() in std::map der sequenziellen Suche?

Dank

InformationsquelleAutor der Frage Navaneeth K N | 2009-02-11

Schreibe einen Kommentar