sourcecode
پنج شنبه 17 مهر 1393, 16:52 عصر
push_back(Value) : کار این تابع اینه که مقدار Value را به انتهای وکتور اضافه می کند .
کد زیر رو در نظر بگیرید .
Vector <int> a(3);
a[0]=1;
a[1]=2;
a[2]=3;
اجرای کد بالا یک وکتور به طول 3 خانه ایجاد که در خانه اول مقدار 1 و در خانه دوم مقدار 2 و در خانه ی سوم مقدار 3 رو قرار میده .
حالا اگه ظرفیت و اندازه وکتور رو چاپ کنیم هر دو برابر 3 هستند .
Cout<<a.capacity();
Cout<<a.size();
نکته : نکته قابل توجه در خصوص تابع push_back اینه که اگر بردار(وکتور) ظرفیت آزادی برای اضافه شدن عنصر نداشته باشد ابتدا ظرفیت بردار را دو برابر می کند و سپس عنصر جدید به انتهای وکتور اضافه می شود .
وکتور ما دارای ظرفیت 3 می باشد که با مقادیر 1 و 2 و 3 پرشده اند .
زمانی که بخواهیم مقداری را با استفاده تابع push_back() به وکتور اضافه کنیم به انتهای وکتور اضافه می شود . با توجه به نکته بالا اگه وکتور پر باشد و بخواهیم مقدار جدیدی اضافه کنیم , کامپایلر به صورت اتوماتیک به این صورت عمل می کند که :
1. اگر ظرفیت وکتور پر باشد ابتدا ظرفیت بردار را دو برابر می کند یعنی ظرفیت وکتور 6 می شود و سپس مقادیر 1 و 2 و 3 را در مکانهای قبلی قرار می دهد .
2. سپس مقدار تابع push_back را به انتهای وکتور اضافه می کند .
مشکلم :
اگه من حالا بیام ظرفیت و اندازه وکتور رو چاب کنم باید ظرفیت وکتور 6 و اندازه وکتور 4 باشد .
در صورتی که ظرفیت را 4 و اندازه را 4 چاپ می شود .
//Header = Include <Vector>
vector <int> a(3);
a.at(0)=1;
a.at(1)=2;
a.at(2)=3;
cout<<"size : "<<a.size()<<"\tcapacity : "<<a.capacity()<<endl;
a.push_back(4);
cout<<"size : "<<a.size()<<"\tcapacity : "<<a.capacity()<<endl;
کد زیر رو در نظر بگیرید .
Vector <int> a(3);
a[0]=1;
a[1]=2;
a[2]=3;
اجرای کد بالا یک وکتور به طول 3 خانه ایجاد که در خانه اول مقدار 1 و در خانه دوم مقدار 2 و در خانه ی سوم مقدار 3 رو قرار میده .
حالا اگه ظرفیت و اندازه وکتور رو چاپ کنیم هر دو برابر 3 هستند .
Cout<<a.capacity();
Cout<<a.size();
نکته : نکته قابل توجه در خصوص تابع push_back اینه که اگر بردار(وکتور) ظرفیت آزادی برای اضافه شدن عنصر نداشته باشد ابتدا ظرفیت بردار را دو برابر می کند و سپس عنصر جدید به انتهای وکتور اضافه می شود .
وکتور ما دارای ظرفیت 3 می باشد که با مقادیر 1 و 2 و 3 پرشده اند .
زمانی که بخواهیم مقداری را با استفاده تابع push_back() به وکتور اضافه کنیم به انتهای وکتور اضافه می شود . با توجه به نکته بالا اگه وکتور پر باشد و بخواهیم مقدار جدیدی اضافه کنیم , کامپایلر به صورت اتوماتیک به این صورت عمل می کند که :
1. اگر ظرفیت وکتور پر باشد ابتدا ظرفیت بردار را دو برابر می کند یعنی ظرفیت وکتور 6 می شود و سپس مقادیر 1 و 2 و 3 را در مکانهای قبلی قرار می دهد .
2. سپس مقدار تابع push_back را به انتهای وکتور اضافه می کند .
مشکلم :
اگه من حالا بیام ظرفیت و اندازه وکتور رو چاب کنم باید ظرفیت وکتور 6 و اندازه وکتور 4 باشد .
در صورتی که ظرفیت را 4 و اندازه را 4 چاپ می شود .
//Header = Include <Vector>
vector <int> a(3);
a.at(0)=1;
a.at(1)=2;
a.at(2)=3;
cout<<"size : "<<a.size()<<"\tcapacity : "<<a.capacity()<<endl;
a.push_back(4);
cout<<"size : "<<a.size()<<"\tcapacity : "<<a.capacity()<<endl;