Введение
В этом практическом занятии вы научитесь использовать метод find() в контейнере Map на C++. Метод find() используется для поиска элемента в Map по заданному ключу. Предполагается, что у вас есть базовые знания C++ и контейнера Map.
Создайте новый файл на 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, если элемент не найден.



