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:
- Cari ayırılmış yaddaşın yeni element üçün kifayət edib-etmədiyi yoxlanılır.
- Əgər yer kifayət edərsə, element massivinin sonuna əlavə olunur.
- Ə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.
- Mövcud elementlər yeni yaddaş blokuna köçürülür və ya kopyalanır.
- Köhnə yaddaş bloku sərbəst buraxılır.
- 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.