Condividi tramite


set::find

Restituisce un iteratore che fa riferimento alla posizione di un elemento in un set che contiene una chiave equivalente a una chiave specificata.

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

Parametri

  • key
    Valore chiave per cui trovare una corrispondenza con la chiave di ordinamento di un elemento presente nel set in cui eseguire la ricerca.

Valore restituito

Iteratore che fa riferimento alla posizione di un elemento con una chiave specificata o alla posizione successiva all'ultimo elemento del set (set::end()) se non viene trovata alcuna corrispondenza per la chiave.

Note

La funzione membro restituisce un iteratore che fa riferimento a un elemento del set la cui chiave è equivalente all'argomento key in un predicato binario che causa un ordinamento basato su una relazione di comparabilità minore di.

Se il valore restituito di find viene assegnato a const_iterator, l'oggetto set non può essere modificato. Se il valore restituito di find viene assegnato a iterator, l'oggetto set può essere modificato.

Esempio

// 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()
{
    set<int> s1({ 40, 45 });
    cout << "The starting set 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 set s1 is: " << endl;
    print_collection(s1);
    cout << endl;
    findit(s1, 45);
    findit(s1, 6);
}

Output

  

Requisiti

Intestazione: <set>

Spazio dei nomi: std

Vedere anche

Riferimenti

Classe set

Libreria di modelli standard