PDA

View Full Version : معرفی Array



khashayar jan
یک شنبه 19 تیر 1390, 03:37 صبح
اگه بخوایم وسط کار اندازه ی Array رو از کاربر بگیریم و یک Array به اندازه ی وارد شده معرفی کنیم راهی هست؟؟؟؟
چون الان من تو ویژوال استودیو که یک Array معرفی میکنم حتما باید اندازه اش یک عدد ثابت باشه و اگه بنویسم

int a;
cin>>a;
int b[a];


ممنون میشم پاسخم را بدید

r00tkit
یک شنبه 19 تیر 1390, 10:02 صبح
سلام بله راهی هستش



int* a = NULL; // Pointer to int, initialize to nothing.
int n; // Size needed for array
cin >> n; // Read in the size
a = new int[n]; // Allocate n ints and save ptr in a.
for (int i=0; i<n; i++) {
a[i] = 0; // Initialize all elements to zero.
}
. . . // Use a as a normal array
delete [] a; // When done, free memory pointed to by a.
a = NULL; // Clear a to prevent using invalid memory reference.



و یا استفاده از
malloc

esh_computer110
یک شنبه 19 تیر 1390, 11:33 صبح
بهتر است وقتی میخواهید یک ارایه تعریف کنید که تعداد خانه های آن مشخص نیست و ممکن است افزایش پیدا کند از آرایه های پویا استفاده کنید که در سی پلاس پلاس Vector نامیده میشوند ونحوه استفاده از آن مشابه ارایه معمولی است با این تفاوت که قابلیت گسترش دارد.در اینجا (http://www.cplusplus.com/reference/stl/vector/) میتوانید اطلاعات زیادی بدست آورید.وکتور خیلی قدرتمند است توصیه می کنم حتما در برنامه های این چنینی از وکتور استفاده کنید

Salar Ashgi
یک شنبه 19 تیر 1390, 23:22 عصر
پیشنهاد بنده نیز جهت اینکار استفاده از Vector هاست ، که قابلیت های بسیار زیادی دارد .

موفق باشید ./

مصطفی ساتکی
سه شنبه 21 تیر 1390, 21:59 عصر
البته بسته به كاربردتون داره حتي در كاربردهاي مختلف بجاي vector‌مي تونيد از stack ،queue ، deque ،list يا priorty_queue استفاده كنيد و علاوه بر اون مي تونيد از Sequence Container نيز استفاده كنيد

FastCode
چهارشنبه 22 تیر 1390, 14:32 عصر
برای 0 کردن Array بهتره که از memset استفاده کنید.توی architecture های مختلف بهتر جواب میده.کدتون شلوغ نمیشه, حجم کدتون و حجم فایل اجرایی میاد پایین.