Witam mam pytanie czy da się zresetować wrzystkie elementy tablicy za jednym zamachem bez zbędnego wpisywania ich po kolei?
Z góry dziękuje

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata

- Rejestracja:ponad 19 lat
- Ostatnio:prawie 7 lat
Zazwyczaj takie coś robisz z pomocą funkcji, np. ZeroMemoty, memset, itp.
int *t = new int[milion];
zatem aby to wyzerować:
ZeroMemory(t, milion*sizeof(int));
abo od razu można użyć coś w stylu:
t = allocZero(milion);
a w windows nawet tak można:
t = GlobalAlloc(GMEM_ZEROINIT, milion);

- Rejestracja:około 9 lat
- Ostatnio:ponad 5 lat
- Lokalizacja:Pabianice
std::vector<>
sam upora się z zerowaniem dużych dynamicznych tablic i pewnie nie będzie wolniejszy:
std::size_t constexpr million{ 1000000 };
std::vector<int> millionNums(million);

- Rejestracja:ponad 19 lat
- Ostatnio:prawie 7 lat
carlosmay napisał(a):
std::vector<>
sam upora się z zerowaniem dużych dynamicznych tablic i pewnie nie będzie wolniejszy:std::size_t constexpr million{ 1000000 }; std::vector<int> millionNums(million);
Będzie zdecydowanie wolniejszy.
Wszelkie te contenery z stl są wolniejsze od podstawowych - 'niskopoziomowych' funkcji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
int array[10] = {0};
vpiotr{0}
pod Visual C++ ponoć działa znacznie wolniej niż{}
, jeśli wydajność ma znaczenie.{}
jest zoptymalizowane tak że wypełniane jest nawet po 16 bajtów na raz (instrukcjami SSE2), podczas gdy{0}
wypełnia pierwszy element pojedynczo, po czym reszta nie jest już odpowiednio wyrównana by zerować elemety tymi samymi instrukcjami co w przypadku{}
.