C++ praca na plikach tekstwych

0

Mam problem z zadaniem - Napisz program, który wypisuje
tylko te liczby, które występują w obu plikach. Można założyć, że liczby w ramach jednego pliku są różne. Dodatkowo liczby są posortowane .
Nie wiem jak napisać część odpowiadającą za porównywania liczb nie mam pomysłu innego niż porównywanie ich indeksów ale wiem że to jest błędne .

1

Wczytaj je do zbiorów, a potem Użyj std::set_intersection

1

Poczytaj o metodzie Merge i na podstawie przeczytanego łatwo skombinujesz własną metodę - na takę wypisywane koszt pamięciowy O(1)

1

Skoro pliki są posortowane, to jest to całkiem proste i liniowe względem ich długości:

  1. Czytasz po 1 liczbie z każdego pliku (a i b)
  2. Porównujesz je:
  • jeśli są równe to wypisujesz i czytasz z obu plików
  • jeśli są różne to czytasz następną liczbę z pliku, w którym była mniejsza
  • wracasz do punktu 2
1

Zadanie jest proste jak konstrukcja cepa.
Zmieściłem się w 25 liniach licząc wszystko (puste linie, include), bez ścieśniania lub innego zaciemniania (używając std::set_intersection).
IMO po odpowiedzi @lion137 powinien być koniec tematu (a sam coś dopisuje :)).

0
  1. Wczytaj pierwszą liczbę z pliku 1
  2. Wczytaj pierwszą liczbę z pliku 2
  3. Porównaj liczby:
    3.1 Jeżeli (liczba z pliku 1 == liczba z pliku 2) => wpisujesz do pliku 3 oraz wczytujesz następne liczby z obu plików
    3.2 Jeżeli (liczba z pliku 1 < liczba z pliku 2) => wczytaj kolejną liczbę z pliku 1
    3.3 Jeżeli (liczba z pliku 1 > liczba z pliku 2) => wczytaj kolejną liczbę z pliku 2
  4. Sprawdź czy nie doszedłeś do końca, któregoś z plików przerwij

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