Как пройти по набору C ++ в обратном направлении

Опубликовано: 30 Декабря, 2021


Для данного набора задача состоит в том, чтобы пройти по этому набору в обратном порядке.

Примеры:

Ввод: set = [10 20 30 70 80 90 100 40 50 60]
Выход: 100 90 80 70 60 50 40 30 20 10 

Ввод: set = [1 2 3 4 5]
Выход: 5 4 3 2 1

Подход:
Чтобы пройти Set в обратном порядке, на нем можно объявить reverse_iterator, и его можно использовать для обхода набора от последнего элемента к первому с помощью функций rbegin () и rend ().

  1. Получите набор.
  2. Объявите обратный итератор для этого набора.
  3. Пройдите по набору от последнего элемента к первому с помощью функций rbegin () и rend ().

Ниже представлена реализация описанного выше подхода:

Программа:

#include <bits/stdc++.h>
using namespace std;
int main()
{
// Get the set
int arr[] = { 14, 12, 15, 11, 10 };
// initializes the set from an array
set< int > s(arr, arr + sizeof (arr) / sizeof (arr[0]));
// declare iterator on set
set< int >::iterator it;
cout << "Elements of Set in normal order: " ;
// prints all elements in normal order
// using begin() and end() methods
for (it = s.begin(); it != s.end(); it++)
cout << *it << " " ;
// declare reverse_iterator on set
set< int >::reverse_iterator rit;
cout << " Elements of Set in reverse order: " ;
// prints all elements in reverse order
// using rbegin() and rend() methods
for (rit = s.rbegin(); rit != s.rend(); rit++)
cout << *rit << " " ;
return 0;
}
Выход:
Элементы набора в обычном порядке:
10 11 12 14 15 
Элементы набора в обратном порядке:
15 14 12 11 10
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .