English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ set find() 使用方法及示例

C++ STL Set ( Conjunto )

C ++ set find()函数用于查找具有给定 val 的元素。如果找到元素,则返回指向该元素的迭代器,否则返回指向集合末尾的迭代器,即set :: end()。

语法

         iterator find (const value_type& val) const;                  // C++ 11 之前
   const_iterator find (const value_type& val) const;              //De C++ 11Início
         iterator       find (const value_type& val);                    //De C++ 11Início

Parâmetro

val:Especifica o valor a ser pesquisado no contêiner de conjunto.

Retorno

Se encontrar o elemento, retorna o iterador apontando para ele, caso contrário, retorna o iterador apontando para o final da coleção, ou seja, set :: end().

Complexidade

Tamanho logarítmico.

Validade do iterador

Sem alterações.

Concorrência de dados

O contêiner não pode ser modificado (versão const e não const) do contêiner.

Não há acesso aos valores do mapeamento: o acesso e a modificação de elementos são seguros.

Segurança de exceção

Se uma exceção for lançada, não haverá alterações no contêiner.

Exemplo1

Vamos ver um exemplo simples para encontrar um elemento com um valor de chave dado:

#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<int> m = {100,200,300,400};
   auto it = m.find(300);
   cout << "O iterador aponta para " << *it << endl;
   return 0;
}

Saída:

O iterador aponta para 300

Exemplo2

Vamos ver um exemplo simples para encontrar um elemento:

#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<char> m = {'a', 'b', 'c', 'd'};
            
    auto it = m.find('e');
   
    if (it == m.end()) {
    // Elemento não encontrado
     cout << "Elemento não encontrado";
    } 
    else {
        // Encontrado
        cout << "O iterador aponta para " << *it << endl;
    }
    
   return 0;
}

Saída:

Elemento não encontrado

No exemplo acima, a função find() busca o valor e no conjunto m, se o valor e não for encontrado no conjunto m, ele retornará a mensagem não encontrado, caso contrário, ele mostrará o conjunto.

Exemplo3

Vamos ver um exemplo simples:

#include <iostream>
#include <set>
 
using namespace std;
int main()
{
    char n;
    set<char> example = {'a','b','c','d','e'};
    
    cout << "Insira o elemento a ser pesquisado: ";
    cin >> n;
 
    auto search = example.find(n);
    if (search != example.end()) {
        cout << n << " encontrado e o valor é " << *search << '\n';
    } else {
        cout << n << " não encontrado\n";
    }
}

Saída:

Insira o elemento a ser pesquisado:
Encontrado e o valor é

No exemplo acima, usamos a função find() para encontrar um elemento com base no valor fornecido pelo usuário.

Exemplo4

Vamos ver um exemplo simples:

#include <iostream>
#include <set>
int main () {
   std::set<int> myset;
   std::set<int>::iterator it;
   for (int i = 1; i <= 10; i++myset.insert(i*10);    
   it = myset.find(40);
   myset.erase(it);
   myset.erase(myset.find(60));
   std::cout << "myset contém:";
   for (it = myset.begin(); it != myset.end(); ++it);
      std::cout << ' ' << *it;
   std::cout << '\n';
   return 0;
}

Saída:

myset contém: 10 20 30 50 70 80 90 100

C++ STL Set ( Conjunto )