vector տիպի զանգված օգտագործելիս հնարավոր է գործողություններ անել vector-ի էլեմենտների հետ։ Օրինակ կարելի է սորտավորել, կամ շրջել զանգվածը algorithm գրադարանի sort() կամ reverse() ֆունկցիաների միջոցով։
Զանգվածները հնարավոր է դասավորել ըստ աճման կարգի գրելով sort(a, a + 100) բայց vector օգտագործելիս դա կարելի է անել ավելի ընդհանուր կերպ՝ sort(a.begin(), a.end());։ Այստեղ ծրագրի մեջ բացահայտ պետք չէ նշել զaնգվածի չափը։ Նշելով a.end() ծրագիրը հասկանում է, որ պետք է դասավորի ըստ աճման կարգի ամբողջ զանգվածը։
int a[100];
for (int i=0; i < 100; ++i)
cin >> a[i];
sort(a, a + 100);
for (int i=0; i < 100; ++i)
cout << a[i] << " ";
vector <int> a(100);
for (int i=0; i i < a.size(); ++i)
cin >> a[i];
sort(a.begin(), a.end());
for (int i=0; i < a.size(); ++i)
cout << a[i] << " ";
Ուշադրություն դարձրեք, որ երկրորդ ծրագրում a-ի չափը 100-ից 150 դարձնելուց հետո ծրագիրը ոչ-մի փոփոխության չի ենթարկվի։ Իսկ աջ կողմինը պետք է 3 տեղ փոփոխվի։
i < 100-ի փոխարեն օգտագործում ենք i < a.size():
sort(a, a + 100);-ի փոխարեն՝ sort(a.begin(), a.end());։
Նույն կերպ՝ զանգվածը հակառակ հերթականությամբ ստանալու համար կարելի է օգտագործել reverse ֆունկցիան algorithm գրադարանի մեջի։
Ի՞նչ են .begin() և .end() ֆունկցիաները վերադարձնում
Այսքանից հետո բնական հարց կարող է առաջանալ, թե ի՞նչ արժեքներ են պարունակում .begin() և .end() ֆունկցիաներն իրենց մեջ: .begin()-ը իրականում զանգվածի առաջին էլեմենտի հասցեն է համակարգչի հիշողության մեջ (pointer)։ Հասցեների (pointers) մասին մենք շատ ավելի մանրամասն կծանոթանանք ավելի ուշ։ .end()-ը դա զանգվածի վերջին էլեմենտից հետո եկող հասցեն է։ Այսինքն այն հասցեն որտեղ vector-ը արդեն ավարտվում է։