Dodanie liczb przedzialu do zb. std::set<int> zbior

0

Witam

Moje zadanie to wykorzystując kontener set biblioteki stl napisać funkcję która przejmie liczby, a, b i zbiór do którego wstawi liczby z przedziału od a do b. Jak dotąd "wypociłem" tyle ale coś mam problem z typem argumentu zbioru w funkcji. Będę bardzo wdzięczny za pomoc.

#include <iostream>
#include <string>
#include <set>

using namespace std;

void add_int_sequence_to_set(int lewa,int prawa,set<int>::iterator simple_set)
    {
         int roznica=0;
         if(prawa<lewa)
         {exit(1);}
                   roznica=prawa-lewa;
                            for(int i=0; i<=roznica; i++)
                            {
                             simple_set.insert(lewa);
                             lewa=lewa+1;
                            }
    }

int main(int argc, char *argv[])
{
    std::set<int> simple_set;
    int a=0,b=0;
    cin>>a>>b;
    add_int_sequence_to_set(a,b,simple_set);
}
    system("PAUSE");
    return EXIT_SUCCESS;
}
1

Dlaczego argumentem tej funkcji jest iterator? Do wypełnienia kolejnymi wartościami od a d b z krokiem 1 użyj zwyczajnej pętli for, niepotrzebne udziwniasz - przecież for nie musi zaczynać od 0.

Uzywanie exit w przypadku niepoprawnych argumentów jest troszkę mało sensowne, wyrzuć wyjątek std::invalid_argument.

0
void add_int_sequence_to_set(int lewa,int prawa,std::set<int> &simple_set)
  {
   for(int i=lewa;i<=prawa;++i) simple_set.insert(i);
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1