تفاوت vector با آرایه در چیست ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تفاوت vector با آرایه در چیست ؟

+3 امتیاز
233 بازدید

سلام

وکتور با آرایه معمولی چه فرقی می کنه ؟

از کدومشون بهتره استفاده کنم ؟

اگر میشه درباره نحوه ساخته شدن وکتور هم توضیح بدین

سوال شده آذر 1, 1392  بوسیله ی toopak (امتیاز 375)   3 8 46

2 پاسخ

+5 امتیاز
 
بهترین پاسخ

وکتور با آرایه معمولی چه فرقی می کنه ؟

وکتور حافظه را به صورت دینامیک در زمان اجرای برنامه در اختیار شما قرار می ده ولی آرایه بدین صورت نیست یا بایستی در زمان کامپایل اندازه اش به صورت ثابت مشخص شه و یا اینکه از new و malloc استفاده کنید.شما در آرایه قابلیت افزودن به انتهای آرایه یا حذف آن را ندارید.

از کدومشون بهتره استفاده کنم ؟

کاملاً بستگی داره به کاری که قصد دارید انجام بدید اگر واقعاً آرایه شما در طول اجرای یک برنامه تغییر نمی کنه اصلاً لزومی نداره از vector استفاده کنید و اگر هم در زمان اجرای برنامه طول آرایه مشخص نیست و قابل تغییره بهتر از vector استفاده کنید البته توی vector هم بایستی حتی المکان تمهیداتی رو رعایت کنید مثل به وسط آن درج یا حذف نکنید سعی کنید به صورت تخمینی فضای مورد نظرتون رو با تابع reserve رزرو کنید و برای افزودن عنصر هم از push_back استفاده کنید.

اگر میشه درباره نحوه ساخته شدن وکتور هم توضیح بدین

vector <int> list;

list.resize(10);

vector<float> list2(10);
 
 

 

پاسخ داده شده آذر 6, 1392 بوسیله ی مصطفی ساتکی (امتیاز 16,267)   16 24 65
+2 امتیاز

وکتور با آرایه معمولی چه فرقی می کنه ؟

vector یه آرایه ی نامحدود هست و میتونین هر وقت خواستین ، تعداد اجزا رو تغییر بدبن.

ولی تو آرایه معمولی یا به قول مصطفی عزیز باید از new یا malloc استفاده کنین و یا همون اول باید سایز رو تعریف کنین.

از کدومشون بهتره استفاده کنم ؟

حرف مصطفی عزیز درسته . اما بهتره همیشه از vector استفاده کنین که وسط کار گیر نکنین.

اگر میشه درباره نحوه ساخته شدن وکتور هم توضیح بدین

من حرف مصطفی رو کامل میکنم :

#include<iostream>
#include <vector>
using namespace std;
int main() // na lozoman main.
{
    vector <int>VectorName; // raveshe aval. int lozooman nabayad bashe.
    vector<int>VectorName2(size); //raveshe dovom.
    vector<int>(size , default value) // raveshe sevvom.
    return 0;
}

 

پاسخ داده شده دی 19, 1393 بوسیله ی Arshia::Aghaei (امتیاز 152)   1 1 16
یه نکته :
default value دستور نیست. اسم پارامتره که editor  با یه چیز دیگه عوضی گرفت.
...