Porównanie liczb z tablicy 1 z tablicą 2

0

Jak sprawdzić czy znajdują się w oby dwóch tablicach te same liczby (mogą być one w innej kolejności) czyli np. mamy 2 tablicy i w 1 mamy kolejno cyfry: 3,4,5 a w 2 tablicy mamy liczby kolejno: 5,4,3 i ma to porównać (każdy element z każdym) i dać wynik: prawda

1

Żeby nie robić dwóch pętli posortuj te tablice i potem porównaj po prostu. Zasadniczo w C++ są to dwie funkcje: std::sort i std::equal.

Nie zapomnij na początek sprawdzić, czy te tablice są w ogóle tej samej długości.

1

to zalezy czy moga sie powtarzac te liczby czy nie
jezeli nie to robisz proste dwa fory i przeszukujesz (albo STL find)
jezeli tak, to potrzebujesz np jakies boolowskiej struktury (np tablica, czy wektor czy std::array) ktora bedzie ustawiac dane pola na true (tam gdzie zostanie znaleziona liczba). Przy wyszukiwaniu kolejnych liczb musisz uzglednic by pole bylo nieodwiedzone (false).

np masz liczby
3 4 4
4 4 3
i strukture boolowoska
false, false, false
false, false, false
szukasz trojki. Znajdujesz w pierwszym na pierwszym miejscu a w drugim na trzecim wiec struktura boolowska ma wygladac tak
true, false, false
false, false, true

jezeli przelecisz cala pierwsza tablice/strukture to wtedy sprawdzasz czy w danej (jednej) strukturze boolowskiej jest jakis false. Jezeli nie ma mozesz zwrocic "PRAWDA" czy co tam potrzebujesz

edit. Albo jak @Endrju napisał ;) jego rozwiązanie jest dużo lepsze

1

W przypadku jeżeli liczb jest dużo zaś ich zakres jest mały warto skorzystać z liczników powtórzeń: { ++counter[tb1[i]] --counter[tb2[i]]; } Po czym sprawdzasz czy wszystkie counter[k]==0

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