W budowie
Materiał edukacyjny · Informatyka

MODUŁ 06

Funkcje operujące na wektorach

W funkcjach przyjmujących wektor rozróżniaj trzy role:

W skrócie

W funkcjach przyjmujących wektor rozróżniaj trzy role:

  • const std::vector<T>& — odczyt istniejących danych bez kopiowania;
  • std::vector<T>& — zmiana wektora przekazanego przez wywołującego;
  • std::vector<T> jako typ zwracany — zwrócenie nowego wyniku, np. filtrowanej kolekcji.

W zadaniu określ, czy kolejność ma zostać zachowana, czy wolno zmieniać wejście oraz co ma zwrócić funkcja dla pustego wektora.

Przykład

Suma, filtr i odwrócenie — trzy role na trzech funkcjach.

long long suma(const std::vector<int>& v) {
    long long s = 0;
    for (int x : v) s += x;
    return s;
}

void odwroc(std::vector<int>& v) {
    int n = v.size();
    for (int i = 0; i < n / 2; ++i) {
        int t = v[i];
        v[i] = v[n - 1 - i];
        v[n - 1 - i] = t;
    }
}
  • Filtr buduje nowy wektor i dopisuje pasujące po kolei — kolejność zostaje.
  • Odwrócenie zamienia końcówki do środka, bez drugiego wektora.
Pusty wektor to normalny testZdecyduj z góry: 0, pusty wynik, true — i tak napisz.

Ćwiczenia

Sprawdzian II — moduły 4–6 (9 nowych zadań)