std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: end, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: cend
From cppreference.net
<
cpp
|
container
|
unordered map
|
iterator end
(
)
noexcept
;
|
(1) |
(начиная с C++11)
(constexpr начиная с C++26) |
|
const_iterator end
(
)
const
noexcept
;
|
(2) |
(начиная с C++11)
(constexpr начиная с C++26) |
|
const_iterator cend
(
)
const
noexcept
;
|
(3) |
(начиная с C++11)
(constexpr начиная с C++26) |
Возвращает итератор за последним элементом * this .
Этот возвращённый итератор действует только как sentinel. Не гарантируется, что он будет dereferenceable .
Содержание |
Возвращаемое значение
Итератор за последним элементом.
Сложность
Константа.
Пример
Запустить этот код
#include <cmath> #include <iostream> #include <unordered_map> struct Node { double x, y; }; int main() { Node nodes[3] = {{1, 0}, {2, 0}, {3, 0}}; // mag - это отображение, связывающее адрес Node с его величиной на плоскости std::unordered_map<Node*, double> mag = { { nodes + 0, 1 }, { nodes + 1, 2 }, { nodes + 2, 3 } }; // Изменяем каждую y-координату с 0 на величину for (auto iter = mag.begin(); iter != mag.end(); ++iter) { auto cur = iter->first; // указатель на Node cur->y = mag[cur]; // можно было также использовать cur->y = iter->second; } // Обновляем и выводим величину каждого узла for (auto iter = mag.begin(); iter != mag.end(); ++iter) { auto cur = iter->first; mag[cur] = std::hypot(cur->x, cur->y); std::cout << "Величина (" << cur->x << ", " << cur->y << ") равна "; std::cout << iter->second << '\n'; } // Повторяем вышеуказанное с использованием цикла for на основе диапазона for (auto i : mag) { auto cur = i.first; cur->y = i.second; mag[cur] = std::hypot(cur->x, cur->y); std::cout << "Величина (" << cur->x << ", " << cur->y << ") равна "; std::cout << mag[cur] << '\n'; // В отличие от std::cout << iter->second << '\n'; выше, // std::cout << i.second << '\n'; НЕ выведет обновленную величину } }
Возможный вывод:
Величина (3, 3) равна 4.24264 Величина (1, 1) равна 1.41421 Величина (2, 2) равна 2.82843 Величина (3, 4.24264) равна 5.19615 Величина (1, 1.41421) равна 1.73205 Величина (2, 2.82843) равна 3.4641
Смотрите также
|
возвращает итератор на начало
(public member function) |
|
|
(C++11)
(C++14)
|
возвращает итератор на конец контейнера или массива
(function template) |