در vector ها اگر وکتور ظرفیت آزادی نداشته باشه ابتدا ظرفیت بردار دو برابر میشود سپس عنصر جدید به انتهای بردار اضافه میشه یعنی اگه ما وکتوری به ظرفیت 5 داشته باشیم و بعد از وارد کردن 5 عنصر درون وکتور با توجه به مطلب گفته شده باید ظرفیت وکتور به 10 بشه و عنصر جدید درون خونه 6 وکتور قرار بگیره ولی در در اجرا کد پایین ظرفیت وکتور به 7 میشه بجای اینکه 10 بشه !!!...
چرا ؟ ؟ ؟
برای درک بهتر سوالم دو تصویر زیر رو نگاه کنین تا بفهمین منظورم چیه :
1.jpg22.png
اینم کدش برای تست کردن
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
vector <int> v;
v.reserve(5);
char n='y';
while (n == 'y')
{
cout « "Capacity : " « v.capacity() « " Size : " « v.size() « endl;
v.push_back(n);
cin » n;
system("cls");
}
cout « endl;
system("pause");
return 0;
}