نقل قول: ظرفیت در وکتور ها
نقل قول:
نوشته شده توسط
sourcecode
در vector ها اگر وکتور ظرفیت آزادی نداشته باشه ابتدا ظرفیت بردار دو برابر میشود سپس عنصر جدید به انتهای بردار اضافه میشه یعنی اگه ما وکتوری به ظرفیت 5 داشته باشیم و بعد از وارد کردن 5 عنصر درون وکتور با توجه به مطلب گفته شده باید ظرفیت وکتور به 10 بشه و عنصر جدید درون خونه 6 وکتور قرار بگیره ولی در در اجرا کد پایین ظرفیت وکتور به 7 میشه بجای اینکه 10 بشه !!!...
چرا ؟ ؟ ؟
برای درک بهتر سوالم دو تصویر زیر رو نگاه کنین تا بفهمین منظورم چیه :
ضمیمه 138892ضمیمه 138893
اینم کدش برای تست کردن
#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;
}
دوستان من از VS استفاده میکنم ولی یکی با کامپایلر GCC جواب درست داد یعنی وقتی که ظرفیت 5 میشه دفعه بعد 10 میشه در صورتی که برای من 7 میشه؟
آیا به سیستم عامل یا نوع کامپایلر بستگی داره یا ممکنه چیزای دیگه دخیل باشه که تو دو کامپایلر خروجی متفاوت رو نشون میده ؟