C++ Usando el método find en el Map de la STL

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a usar el método find() en un Map en C++. El método find() se utiliza para buscar un elemento en un Map con una clave dada. Este laboratorio asume que tienes conocimientos básicos de C++ y del contenedor Map.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp/BasicsGroup -.-> cpp/data_types("Data Types") cpp/BasicsGroup -.-> cpp/operators("Operators") cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/data_types -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/operators -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/strings -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/conditions -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/output -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/user_input -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/files -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/standard_containers -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} cpp/code_formatting -.-> lab-96231{{"C++ Usando el método find en el Map de la STL"}} end

Crea un nuevo archivo de C++

Primero, debes crear un nuevo archivo de C++ llamado main.cpp en el directorio ~/project. Puedes usar cualquier editor de texto o IDE para crear y editar este archivo.

cd ~/project
touch main.cpp

Incluye las bibliotecas y el espacio de nombres necesarios

En la parte superior del archivo main.cpp, incluye las bibliotecas necesarias y la directiva using.

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

using namespace std;

Define la función principal

Define la función main() para comenzar a escribir tu código.

int main() {
  //Tu código
  return 0;   //Salir del programa
}

Crea un contenedor Map

Crea un contenedor Map con claves y valores enteros. El contenedor Map almacenará pares clave-valor ordenados en orden ascendente de claves.

map<int, int> myMap;   //Crea un contenedor Map con claves y valores enteros

Inserta elementos en el Map

Utiliza el método insert() para insertar pares clave-valor en el contenedor Map. En este paso, se insertarán cinco elementos en el 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));

Utiliza el método find() para buscar un elemento

Utiliza el método find(x) para buscar un elemento con clave x en el Map. Si el elemento se encuentra, el método devuelve un iterador al elemento. Si no se encuentra, el método devuelve un iterador al end() del contenedor Map. Aquí, buscaremos elementos con claves 5 y 6.

map<int, int>::iterator it;   //Crea un iterador para el contenedor Map
it = myMap.find(5);   //Busca el elemento con clave 5 en el Map
if (it!= myMap.end()) {
  cout << "Elemento con clave 5 se encuentra y el valor es " << it->second << endl;
} else {
  cout << "Elemento con clave 5 no se encuentra\n";
}
it = myMap.find(6);   //Busca el elemento con clave 6 en el Map
if (it!= myMap.end()) {
  cout << "Elemento con clave 6 se encuentra y el valor es " << it->second << endl;
} else {
  cout << "Elemento con clave 6 no se encuentra\n";
}

Compila y ejecuta el programa

Compila el archivo main.cpp utilizando el siguiente comando en la terminal:

g++ main.cpp -o main

Ejecuta el programa utilizando el siguiente comando:

./main

Prueba el programa

Después de ejecutar el programa, deberías ver la siguiente salida en la terminal:

Elemento con clave 5 se encuentra y el valor es 25
Elemento con clave 6 no se encuentra

Esta salida muestra que el elemento con clave 5 se encuentra en el Map y su valor es 25. El elemento con clave 6 no se encuentra en el Map.

Completa el código

Copia y pega el siguiente código completo en el archivo main.cpp.

#include <iostream>
#include <map>

using namespace std;

int main() {
  map<int, int> myMap;   //Crea un contenedor Map con claves y valores enteros
  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;   //Crea un iterador para el contenedor Map
  it = myMap.find(5);   //Busca el elemento con clave 5 en el Map
  if (it!= myMap.end()) {
    cout << "Elemento con clave 5 se encuentra y el valor es " << it->second << endl;
  } else {
    cout << "Elemento con clave 5 no se encuentra\n";
  }
  it = myMap.find(6);   //Busca el elemento con clave 6 en el Map
  if (it!= myMap.end()) {
    cout << "Elemento con clave 6 se encuentra y el valor es " << it->second << endl;
  } else {
    cout << "Elemento con clave 6 no se encuentra\n";
  }
  return 0;   //Sale del programa
}

Resumen

¡Felicidades! Has aprendido con éxito cómo utilizar el método find() en un contenedor Map en C++. El método find() es útil para buscar elementos con una clave específica en un contenedor Map. Recuerda que el método find() devuelve un iterador al elemento si se encuentra, y un iterador al end() del contenedor Map si el elemento no se encuentra.