Как пройти карту STL в обратном направлении?
Опубликовано: 30 Декабря, 2021
Карта хранит элементы в отсортированном порядке ключей. Теперь, если мы хотим пройти его в обратном порядке, мы будем использовать reverse_iterator карты.
Синтаксис:
map :: reverse_iterator имя_тератора;
Обратный итератор карты движется в обратном направлении на приращение. Итак, мы укажем reverse_iterator на последний элемент карты, а затем продолжаем увеличивать его, пока не достигнем первого элемента. Для этого мы будем использовать 2 функции-члены std :: map ie.
1. rbegin (): возвращает reverse_iterator, указывающий на последний элемент карты.
2. rend (): возвращает reverse_iterator, указывающий на первый элемент карты.
Теперь для обхода в обратном порядке мы будем перебирать диапазон b / w rbegin () и rend (), используя reverse_iterator.
Обратная итерация в карте:
Пример:
Ввод: (10, «фанаты»), (20, «практика»), (5, «внести свой вклад») Вывод: (20, «практика»), (10, «компьютерщики»), (5, «участие»).
// C++ program makes a map to iterate // elements in reverse order. #include <bits/stdc++.h> using namespace std; int main() { // Creating & Initializing a map of String & Ints map< int , string> mymap; // Inserting the elements one by one mymap.insert(make_pair(10, "geeks" )); mymap.insert(make_pair(20, "practice" )); mymap.insert(make_pair(5, "contribute" )); // Create a map reverse iterator map< int , string>::reverse_iterator it; // rbegin() returns to the last value of map for (it = mymap.rbegin(); it != mymap.rend(); it++) { cout << "(" << it->first << ", " << it->second << ")" << endl; } return 0; } |
Выход:
(20, practice) (10, geeks) (5, contribute)