Метод end
Метод end класса map возвращает итератор, который указывает на позицию, следующую за последним элементом контейнера. Этот итератор часто используется в циклах для обхода всех элементов карты, а также для проверки того, достигнут ли конец контейнера при поиске. Важно понимать, что разыменование итератора, возвращаемого методом end, приводит к неопределенному поведению, так как он не указывает на реальный элемент. Метод не принимает параметров.
Синтаксис
iterator end();
const_iterator end() const;
Пример
Давайте создадим карту и используем метод end для вывода всех её элементов в цикле:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp = {{1, "a"}, {2, "b"}, {3, "c"}};
for (auto it = mp.begin(); it != mp.end(); ++it)
{
cout << it->first << " " << it->second << endl;
}
return 0;
}
Результат выполнения кода:
"1 "a""
"2 "b""
"3 "c""
Пример
Давайте проверим, что метод find возвращает end, если элемент не найден:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp = {{1, "a"}, {2, "b"}, {3, "c"}};
auto it = mp.find(4);
if (it == mp.end())
{
cout << "Element not found" << endl;
}
return 0;
}
Результат выполнения кода:
"Element not found"