Я пробовал следующий код, чтобы напечатать std::set<int>
в обратном порядке:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <list>
#include <map>
#include <utility>
#include <set>
#include <stack>
using namespace std;
void setRecursivePrinting(set<int> s, set<int>::iterator it)
{
int x;
x = *it;
it++;
if (it != s.end())
{
setRecursivePrinting(s, it);
}
cout << x << '\t';
}
int main()
{
set<int> s;
s.insert(44);
s.insert(2);
s.insert(10);
s.insert(8);
s.insert(100);
setRecursivePrinting(s, s.begin());
return 0;
}
Но проблема в том, что вывод ничего не показывает. Я что-то упускаю? Мне тоже известны функции rbegin()
и rend()
, но я просто хочу научиться реализовывать их рекурсивным способом.