ورود

نسخه کامل مشاهده نسخه کامل : اضافه کردن به ارایه پویا بعد از تعریف



masoud_cpu
23-04-2011, 15:58
سلام .
همان جور که میدانید ارایه پویا داخل پلاس پلاس با دستور


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

میشوند .
حالا اگر معلوم نیود این متغیر n چند بود باید چکار کرد .
یعنی راهی هست که ارایه از یک عضو ایجاد بشه و هی مرتب به تعداد ان اضافه کرد ؟
یعنی در اخر مثلا ارایه 100 عنصر داشته باشه ؟

با تشکر

MAXXX
23-04-2011, 17:05
از شدن که میشه آرایه رو داینامیک رو کم و زیاد کرد میتونی از std::vector استفاده کنی

ولی سوالت برام نامفهومه یعنی چی مقدار متغیر n معلوم نبود ؟ پس برنامه نویس اونجا چیکار میکنه ؟

Xilevens
23-04-2011, 19:46
با new كردن ميشه اما مسلما يه n رو اول كار بايد بهش بديد

masoud_cpu
23-04-2011, 23:39
از شدن که میشه آرایه رو داینامیک رو کم و زیاد کرد میتونی از std::vector استفاده کنی

ولی سوالت برام نامفهومه یعنی چی مقدار متغیر n معلوم نبود ؟ پس برنامه نویس اونجا چیکار میکنه ؟

سلام .
بعصی مواقع نیاز هست برنامه هوشمند نوشته بشه . خوب اگر برنامه نویس بدونه چقدر ارایه نیاز داره از ارایه استاتیک استفاده میکنه دیگه
مثال میزنم :
برنامه از یک عدد رو از ورودی دریافت میکنه مثلا 100 حالا تا جایی که عدد بزرگتر از 10 باشه هی اونو تقسیم بر 2 میکنه و آرایه رو یک خانه زیاد میکنه و جواب رو در خانه جدید ارایه میریزه .
امید وارم متوجه منظورم شده باشید .

MAXXX
24-04-2011, 17:10
من منظورت رو از کم و زیاد کردن گرفم وخیلی مواقع پیش میاد که نیاز باشه آرایه رو کم و زیاد کنیم

ولی نحوه توضیح دادنتون خوب نیست و باعث سردرگمی میشه مثلا شما اومدی گفتی



int n;
int *arr = new int[ n ];

میشوند .
حالا اگر معلوم نیود این متغیر n چند بود باید چکار کرد . که این شبهه رو پیش میاره که ما اصلا از اول تعداد خونه ها رو نمیدونیم که آرایه پویا اصلا ماله این کاره

در هر صرت 2 راه داری برای کم و زیاد کردن آرایه

یکی استفاده از std::vector که همه محاسبات لازم رو خودش انجام میده و خیلی تمیز و بدون مشکل اینکارو انجام میده
راه دیگه اینه که شما یه آرایه دومی بسازی و محتویات آرایه اول رو بریزی اونتو
بعد آرایه اولی رو دلیت کنی و با تعداد خونه های جدید از اول بسازیش
حالا از آرایه دومی محتویات رو برمیگردونی به اولی