Sobes.tech
Junior — Middle

Vektor növündə dinamik massivə yeni element əlavə edilərkən hansı əməliyyatlar həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

std::vector tipli dinamik massivə yeni element əlavə edilərkən aşağıdakı əməliyyatlar həyata keçirilir:

  1. Cari ayırılmış yaddaşın yeni element üçün kifayət edib-etmədiyi yoxlanılır.
  2. Əgər yer kifayət edərsə, element massivinin sonuna əlavə olunur.
  3. Əgər yaddaş kifayət etməzsə, daha böyük ölçüdə yeni yaddaş bloku (adətən mövcud ölçünün 1.5-2 dəfə çoxu) ayrılır.
  4. Mövcud elementlər yeni yaddaş blokuna köçürülür və ya kopyalanır.
  5. Köhnə yaddaş bloku sərbəst buraxılır.
  6. Yeni element sonuna əlavə olunur.

Nümunə:

std::vector<int> v = {1, 2, 3};
v.push_back(4); // 4 elementini əlavə edir

Bu mexanizm elementlərin əlavə olunmasında amortizasiya olunmuş sabit mürəkkəbliyi təmin edir, yaddaşın yenidən bölüşdürülməsi mümkün olsa da.