Szablon rozwiązania

Gdy przystępujesz do pisania kodu, zwykle rozpoczynasz od pewnego „szkieletu”, który pewnie wygląda jakoś tak:

Ale czy na pewno wiesz, do czego służy każda z linijek? Wyjaśnimy sobie co oznaczają poszczególne instrukcje:

#include <bits/stdc++.h> – plik nagłówkowy, którego możesz używać zamiast <iostream>, zawiera praktycznie wszystkie biblioteki, które będą ci potrzebne.

using namespace std; – w większych systemach często dochodzi do kolizji, gdy dwa różne obiekty posiadają tę samą nazwę i kompilator nie wie, którą wybrać. By temu zaradzić wprowadzono tzw. “przestrzenie nazw” (namespace). W C++ każdy obiekt oprócz tego że ma swoją nazwę jest również w pewnej przestrzeni i odnosimy się do niego tak:

nazwa_przestrzeni::nazwa_obiektu.

Strumienie cout i cin pochodzące z biblioteki standardowej (standard library) zawarte są w przestrzeni “std”, zatem musimy odnosić się do nich tak:

std::cout i std::cin

W mniejszych programach jest to dość niewygodne, więc możemy ustawić którą przestrzeń będziemy używać jako domyślną. Ta linijka właśnie do tego służy. Dzięki niej możesz opuścić przedrostek std:: i pisać po prostu tak:

cin >> n;

ios_base::sync_with_stdio(0) – w C++ możemy wczytywać/wypisać dane na dwa sposoby:

  • printf(…) i scanf(…) – za pomocą funkcji pochodzących z języka C lub
  • cout << … i cin >> … – strumieni wprowadzonych w C++

Niektóre programy używają obu tych sposobów na zmianę (tak jest np. w większych systemach, gdzie różne moduły są pisane przez różnych ludzi na przestrzeni lat). Potrzebna jest wtedy synchronizacja między nimi tak, by mogły działać naprzemiennie (w przeciwnym wypadku mogłoby się zdarzyć, że jedna funkcja wczyta pierwsze pół wyrazu a druga pozostałe pół, tego byśmy nie chcieli). Minusem używania synchronizacji jest to, że spowalnia ono wczytywanie/wypisywanie – za każdym razem system musi sprawdzać, czy może wczytywać/pisać na ekran. Synchronizacja jest włączona domyślnie. Do naszych zastosowań jednak zupełnie nie jest potrzebna, piszemy bowiem krótkie programy, używając tylko jednego ze sposobów. Powyższa linijka wyłącza synchronizację i przyspiesza działanie programu. Używaj jej zawsze, jeśli korzystasz z cout << … i cin >> ….

return 0; – każda funkcja musi coś zwracać, również main. 0 informuje, że program zakończył się bez błędów.

 

One thought on “Szablon rozwiązania

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*