Freigeben über


multiset::find

Gibt einen Iterator zurück, der sich auf den Speicherort eines Elements in einer Zuordnung bezieht, der einen Schlüssel entsprechend einem angegebenen Schlüssel aufweist.

iterator find(const Key& key);  const_iterator find(const Key& key) const; 

Parameter

  • key
    Der Schlüsselwert, der durch den Sortierschlüssel eines Elements aus dem durchsuchten Multiset verglichen wird.

Rückgabewert

Ein Iterator, der sich auf den Speicherort eines Elements mit einem angegebenen Schlüssel oder den Speicherort, der auf das letzte Element im Multiset folgt, bezieht (multiset::end()), wenn keine Übereinstimmung für den Schlüssel gefunden wird.

Hinweise

Die Mitgliedsfunktion gibt ein Iterator zurück, der sich auf ein Element im Multiset bezieht, dessen Schlüssel dem Argument key unter einem binären Prädikat entspricht, das eine Sortierung basierend auf einer kleiner-als-Vergleichbarkeitsbeziehung einleitet.

Wenn der Rückgabewert von finden einem Const_iterator zugewiesen sind, kann das Multiset-Objekt nicht geändert werden. Wenn der Rückgabewert von finden einem Iterator zugewiesen sind, kann das Multiset-Objekt geändert werden.

Beispiel

// compile with: /EHsc /W4 /MTd
#include <set>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

template <typename T> void print_elem(const T& t) {
    cout << "(" << t << ") ";
}

template <typename T> void print_collection(const T& t) {
    cout << t.size() << " elements: ";

    for (const auto& p : t) {
        print_elem(p);
    }
    cout << endl;
}

template <typename C, class T> void findit(const C& c, T val) {
    cout << "Trying find() on value " << val << endl;
    auto result = c.find(val);
    if (result != c.end()) {
        cout << "Element found: "; print_elem(*result); cout << endl;
    } else {
        cout << "Element not found." << endl;
    }
}

int main()
{
    multiset<int> s1({ 40, 45 });
    cout << "The starting multiset s1 is: " << endl;
    print_collection(s1);

    vector<int> v;
    v.push_back(43);
    v.push_back(41);
    v.push_back(46);
    v.push_back(42);
    v.push_back(44);
    v.push_back(44); // attempt a duplicate

    cout << "Inserting the following vector data into s1: " << endl;
    print_collection(v);

    s1.insert(v.begin(), v.end());

    cout << "The modified multiset s1 is: " << endl;
    print_collection(s1);
    cout << endl;
    findit(s1, 45);
    findit(s1, 6);
}

Ausgabe

  

Anforderungen

Header: <set>

Namespace: std

Siehe auch

Referenz

multiset-Klasse

Standardvorlagenbibliothek