Sobes.tech
Junior — Middle

Milyen megközelítést alkalmaznál nagy adatmennyiség tárolására, amikor az eredeti méret nem ismert?

sobes.tech MI

Válasz az MI-től

A nagy mennyiségű, kezdetben ismeretlen méretű adatok tárolására C/C++-ban általában dinamikus memóriafoglalást és olyan adatstruktúrákat használnak, amelyek szükség szerint bővíthetők.

Fő megközelítések:

  • Dinamikus tömbök használata újraelosztással (pl. realloc C-ben vagy std::vector C++-ban), amelyek növelik a méretüket, amikor elérik a jelenlegi kapacitást.
  • Nagyon nagy adatok esetén fájl alapú tárolás vagy adatbázisok alkalmazása, hogy ne tartsa az összes adatot a RAM-ban.

Példa std::vector-ral C++-ban:

#include <vector>

std::vector<int> data;

// Elemenkénti hozzáadás a beérkezésük szerint
for (int i = 0; i < n; ++i) {
    int value;
    std::cin >> value;
    data.push_back(value);
}

A std::vector automatikusan kezeli a memóriát, és szükség szerint bővül.