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?
Część wspólna dwóch zbiorów
- Rejestracja: dni
- Ostatnio: dni
- Postów: 7
- Rejestracja: dni
- Ostatnio: dni
Możesz np wczytać to jako string, i potem podzielić go na poszczególne liczby.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 473
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ę.