soultaker-ի խոսքերից
Զանգվածը C++ում իրենից ներկայացնում է ֆիքսված չափի տիրույթ, մեծացնել փոքրացնել հնարավոր է միայն անուղղակի կերպով` արդեն գոյություն ունեցող զանգվածը ջնջելով ու դրա փոխարեն նոր չափի զանգված վերցնելով (բնականաբար եթե զանգվածը դինամիկ կերպով է ստեղծվել, հակառակ դեպքում այն ջնջել հնարավոր չէ): Ընդհանրապես որոշ դեպքերում ավելի հարմար է վերցնել միանգամից մեծ չափի զանգված, այնպես որ ընթացքում մեծացնելու կարիք չլինի, իսկ եթե այնուամենայնիվ չափը ընթացքում փոխելը պետք է գալիս, ամենահարմար տարբերակը STL-ի վեկտորն է(vector): Այն իր մեջ պահում է դինամիկ զանգված, ու նոր էլեմենտներ ավելացնելիս հենց եղած տեղը վերջանում է, եղած հիշողությունը փոխարինում է նոր` ավելի մեծ հիշողությամբ, իսկ հինը ջնջում է(բնականաբար այդ ընթացքում հին հիշողության պարունակությունը տեղափոխում է նորի մեջ), և հակառակը` երբ որ օգտագործվող մասի չափը քչանում է վերցված հիշողության չափի ինչ-որ մասից, կատարվում է հակառակ գործողությունը, և վերցվում է նոր` ավելի փոքր չափի հիշողություն, իսկ հինը ջնջվում է: Եթե ավելի ցածր մակարդակի տեսանկյունից նայենք, vector-ը ինչքան գիտեմ օգտագործում է C++ի new/delete-ը, որոնք էլ իրենց հերթին հիմնված են C-ի malloc/free հրամանների վրա:
Էջանիշներ