Compartilhar via


set::find

Retorna um iterador que aponta para o local de um elemento em um conjunto que tem uma chave igual a uma chave especificada.

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

Parâmetros

  • key
    O valor da chave a ser comparado pela chave de classificação de um elemento do conjunto que está sendo pesquisado.

Valor de retorno

Um iterador que se refere ao local de um elemento com uma chave especificada ou o local que substitui o último elemento no conjunto (set::end()) se nenhuma correspondência for encontrada para a chave.

Comentários

A função de membro retorna um iterador que se refere a um elemento do conjunto cuja chave é equivalente ao argumento key em um predicado binário que induz uma ordenação com base em uma relação de comparação menor.

Se o valor de retorno find for atribuído a um const_iterator, o objeto do conjunto não poderá ser modificado. Se o valor de retorno find for atribuído a um iterador, o objeto do conjunto poderá ser modificado.

Exemplo

// 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);
}

Saída

  

Requisitos

Cabeçalho: <set>

Namespace: std

Consulte também

Referência

Classe set

Biblioteca de Modelos Padrão