Muszę napisać program, który wypisuje wspólne elementy dwóch zbiorów. Na wejściu powinny być wprowadzone dane w taki sposób:
{1, 2, 3}*{3, 4, 5}
Ogólnie wiem jak wykonać sam algorytm, ale czy istnieje sposób, by tworzyło dwie osobne tablice o elementach 1,2,3 i 3,4,5 według takiego zapisu na wejściu?
Możesz np wczytać to jako string, i potem podzielić go na poszczególne liczby.
ale czy istnieje sposób, by tworzyło dwie osobne tablice o elementach 1,2,3 i 3,4,5 według takiego zapisu na wejściu?
A czemu nie?
Najpierw czytasz znaki aż dotrzesz do {
. Potem dopóki następny niebiały znak nie będzie }
((cin>>ws).peek()
) czytasz liczby. Nie powinno pomylić przecinka z podziałem dziesiętnym bo po angielsku podział dziesiętny to kropka. O ile pierwszy niebiały znak po liczbie to nie jest }
musisz go zignorować - bo to przecinek (cin.ignore
). To samo z drugą tablicą.
Wczytywane liczby zapisujesz do vector<int>
jeśli chcesz do tablicy je zapisywać, gdyż dzięki temu możesz użyć metody push_back
, a nie musisz znać z góry rozmiwaru tablicy ani bawić się w ręczną realokację.