Пространства имён
Варианты
Действия

std::unordered_map::begin, std::unordered_map::cbegin

Материал из cppreference.com
 
 
 
 
iterator begin()noexcept;
(начиная с C++11)
const_iterator begin()constnoexcept;
(начиная с C++11)
const_iterator cbegin()constnoexcept;
(начиная с C++11)

Возвращает итератор на первый элемент unordered_map.

Если unordered_map - пуст, возвращаемый итератор будет равен end()

range-begin-end.svg

Содержание

[править]Параметры

(нет)

[править]Возвращаемое значение

Итератор на первый элемент.

[править]Сложность

Константная.


[править]Example

#include <cmath>#include <iostream>#include <unordered_map>   struct Node {double x, y;};   int main(){ Node nodes[3]={{1, 0}, {2, 0}, {3, 0}};   // mag - map, сопоставляющий адрес Node к длине вектора на плоскостиstd::unordered_map<Node *, double> mag ={{ nodes, 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(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

[править]See also

(C++11)
возвращает итератор на конец
(public функция-элемент)[править]
close