C++: Использование метода find() в STL Map

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы научитесь использовать метод find() в контейнере Map на C++. Метод find() используется для поиска элемента в Map по заданному ключу. Предполагается, что у вас есть базовые знания C++ и контейнера Map.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL 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(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) 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++: Использование метода find() в STL Map"}} cpp/operators -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/strings -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/conditions -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/output -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/user_input -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/files -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/standard_containers -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} cpp/code_formatting -.-> lab-96231{{"C++: Использование метода find() в STL Map"}} end

Создайте новый файл на C++

Во - первых, вам нужно создать новый файл на C++ с именем main.cpp в директории ~/project. Вы можете использовать любой текстовый редактор или IDE для создания и редактирования этого файла.

cd ~/project
touch main.cpp

Включите необходимые библиотеки и пространство имен

В начале файла main.cpp включите необходимые библиотеки и директиву using.

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

using namespace std;

Определите главную функцию

Определите функцию main(), чтобы начать писать свой код.

int main() {
  //Ваш код
  return 0;   //Завершить программу
}

Создайте контейнер Map

Создайте контейнер Map с целыми числами в качестве ключей и значений. Контейнер Map будет хранить пары ключ-значение, отсортированные по возрастанию ключей.

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

Вставьте элементы в Map

Используйте метод insert(), чтобы вставить пары ключ-значение в контейнер Map. На этом этапе пять элементов будут вставлены в 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));

Используйте метод find() для поиска элемента

Используйте метод find(x), чтобы искать элемент с ключом x в Map. Если элемент найден, метод возвращает итератор на этот элемент. Если элемент не найден, метод возвращает итератор на end() контейнера Map. Здесь мы будем искать элементы с ключами 5 и 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";
}

Скомпилируйте и запустите программу

Скомпилируйте файл main.cpp с использованием следующей команды в терминале:

g++ main.cpp -o main

Запустите программу с использованием следующей команды:

./main

Протестируйте программу

После запуска программы в терминале вы должны увидеть следующий вывод:

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

Этот вывод показывает, что элемент с ключом 5 найден в Map и его значение равно 25. Элемент с ключом 6 не найден в Map.

Завершите код

Скопируйте и вставьте следующий полный код в файл 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
}

Резюме

Поздравляем! Вы успешно научились использовать метод find() в контейнере Map на C++. Метод find() полезен для поиска элементов с определенным ключом в контейнере Map. Помните, что метод find() возвращает итератор на элемент, если элемент найден, и итератор на end() контейнера Map, если элемент не найден.