C++ Usando o Método Find em Mapas STL

C++Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o método find() em um Map em C++. O método find() é usado para procurar um elemento em um Map com uma chave (key) fornecida. Este laboratório assume que você tem conhecimento básico de C++ e do container Map.

Criar um novo arquivo C++

Primeiro, você precisa criar um novo arquivo C++ chamado main.cpp no diretório ~/project. Você pode usar qualquer editor de texto ou IDE para criar e editar este arquivo.

cd ~/project
touch main.cpp

Incluir as bibliotecas e namespace necessários

No topo do arquivo main.cpp, inclua as bibliotecas necessárias e a diretiva using.

#include <iostream>
#include <map>   //include map library

using namespace std;

Definir a função principal (main)

Defina a função main() para começar a escrever seu código.

int main() {
  //Your code
  return 0;   //Exit program
}

Criar um container Map

Crie um contêiner Map com chaves e valores inteiros. O contêiner Map armazenará pares chave-valor ordenados em ordem crescente de chaves.

map<int, int> myMap;   //Create a Map container with integer keys and values

Inserir elementos no Map

Use o método insert() para inserir pares chave-valor no contêiner Map. Esta etapa irá inserir cinco elementos no Map.

myMap.insert(make_pair(3, 9));
myMap.insert(make_pair(2, 4));
myMap.insert(make_pair(5, 25));
myMap.insert(make_pair(9, 81));
myMap.insert(make_pair(1, 1));

Usar o método find() para procurar um elemento

Use o método find(x) para procurar um elemento com a chave x no Map. Se o elemento for encontrado, o método retorna um iterador para o elemento. Se não for encontrado, o método retorna um iterador para o end() do contêiner Map. Aqui, vamos procurar elementos com as chaves 5 e 6.

map<int, int>::iterator it;   //Create an iterator for the Map container
it = myMap.find(5);   //Find the element with key 5 in the Map
if (it != myMap.end()) {
  cout << "Element with key 5 is found and the value is " << it->second << endl;
} else {
  cout << "Element with key 5 is not found\n";
}
it = myMap.find(6);   //Find the element with key 6 in the Map
if (it != myMap.end()) {
  cout << "Element with key 6 is found and the value is " << it->second << endl;
} else {
  cout << "Element with key 6 is not found\n";
}

Compilar e executar o programa

Compile o arquivo main.cpp usando o seguinte comando no terminal:

g++ main.cpp -o main

Execute o programa usando o seguinte comando:

./main

Testar o programa

Após executar o programa, você deve ver a seguinte saída no terminal:

Element with key 5 is found and the value is 25
Element with key 6 is not found

Esta saída mostra que o elemento com a chave 5 foi encontrado no Map e seu valor é 25. O elemento com a chave 6 não foi encontrado no Map.

Completar o código

Copie e cole o seguinte código completo no arquivo main.cpp.

#include <iostream>
#include <map>

using namespace std;

int main() {
  map<int, int> myMap;   //Create a Map container with integer keys and values
  myMap.insert(make_pair(3, 9));
  myMap.insert(make_pair(2, 4));
  myMap.insert(make_pair(5, 25));
  myMap.insert(make_pair(9, 81));
  myMap.insert(make_pair(1, 1));
  map<int, int>::iterator it;   //Create an iterator for the Map container
  it = myMap.find(5);   //Find the element with key 5 in the Map
  if (it != myMap.end()) {
    cout << "Element with key 5 is found and the value is " << it->second << endl;
  } else {
    cout << "Element with key 5 is not found\n";
  }
  it = myMap.find(6);   //Find the element with key 6 in the Map
  if (it != myMap.end()) {
    cout << "Element with key 6 is found and the value is " << it->second << endl;
  } else {
    cout << "Element with key 6 is not found\n";
  }
  return 0;   //Exit program
}

Resumo

Parabéns! Você aprendeu com sucesso como usar o método find() em um contêiner Map em C++. O método find() é útil para pesquisar elementos com uma chave específica em um contêiner Map. Lembre-se que o método find() retorna um iterador para o elemento se o elemento for encontrado, e um iterador para o end() do contêiner Map se o elemento não for encontrado.