Compartilhar via


multiset::find

Retorna um iterador que aponta para o local de um elemento em um multiconjunto 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 multiconjunto 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 multiconjunto (multiset::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 multiconjunto 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 multiconjunto não poderá ser modificado. Se o valor de retorno find for atribuído a um iterador, o objeto do multiconjunto 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()
{
    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);
}

Saída

  

Requisitos

Cabeçalho: <set>

Namespace: std

Consulte também

Referência

Classe multiset

Biblioteca de Modelos Padrão