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.
reallocC-ben vagystd::vectorC++-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.