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

تبدیل آرایه به vector

+1 امتیاز
سلام.

چطور میشه یک آرایه را vector معادل آن تبدیل کرد.

من آرایه int arr[10] را دارم قصد دارم بریزمش توی vector vec
سوال شده آذر 11, 1392  بوسیله ی مریم اکرمی (امتیاز 482)   25 55 66
دوباره تگ گذاری شد فروردین 20, 1393 بوسیله ی BlueBlade

3 پاسخ

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

جهت تبدیل بهینه از آدرس عناصر vector استفاد کنید چون vector هم مثل new و malloc تضمن می کنه که حافظه به صورت پیوسته اشغال بشه.

		int arr[5]={1,2,3,4,5};
		vector<int> vec(arr,arr + 5);
		for (size_t i=0; i < vec.size();i++)
			cout << vec[i] << endl;

 

پاسخ داده شده آذر 11, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد آذر 20, 1392 بوسیله ی BlueBlade
آقا این که فرمودید رو کاملا مطمئنید؟ همیشه اینطوره؟ پشت سر هم هستن همیشه؟
بله.یکی از بزرگترین مزیت هاشه.تابع reserve هم بخاطر این گذاشتن که شما مقدار فضای مورد نیازتون را پیش بینی کنید تا برای افزودن عناصر هر بار مجبور به realloc نباشه.
+1 امتیاز
اگه بتونی توی کدت از اول vector رو push_back کنی بهتره ولی اگه میخوای بعد بریزی توی وکتور اولین راه که اصلا بهینه نیست یکی یکی ریختن توی وکتوره ، ولی کارُ راه میندازه تا ببینیم اساتیدِ اینجا چ نظری داشته باشن
پاسخ داده شده آذر 11, 1392 بوسیله ی Elyas74 (امتیاز 1,144)   6 14 27
+2 امتیاز

توی C++11 میتونی از این روش استفاده کنی :

std::vector<int> vect({ 11, 7, 7, 4, 5 });

برای تبدیل ارایه هم این شکل :

int a[] = { 7, 2, 3, 4, 5 };
std::vector<int> vect(std::begin(a), std::end(a));

 

پاسخ داده شده آذر 11, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
...