اول چندین سوال رو بررسی میکنیم :
چرا باید از اشاره گر استفاده کرد ؟
چرا باید با استفاده از اشاره گر حافظه گرفت ؟
حافظه ی پویا واشاره گر ها
تفاوت وشباهت ارایه واشاره گر چیست !(این یکی واقعا ربطی نداره ولی بدونید اولین عنصر یه ارایه در درواقع یه اشاره گر به ادرس اولیه ی ارایه هست)
فرض کنید میخوایید چندین مقدار(که کاربر میده ) رو از کاربر بگیرید و تو یه جا ذخیره کنید (حالا اگه این چندین مقدار رو هم کاربر ندونه چی میشه ؟؟؟ فک کنم باید از همین راه برید !)
الگوریتمش همین الان یهویی !
خب میگید ارایه میزنم بعد برای گرفتن مقدار ،یه وایل میذاریم مقدار رو میگیرم از کاربر میخواییم که باز هم ادامه میده (مقدار میده ) یانه ؟ اگعه یس داد پس یه خونه به خونه های ارایه اضافه میکنیم ودوباره روزی از نو ...
اما سوال اصلی اینجاست تفکر کسی که ارایه رو اختراع کرد این بود؟؟؟ ارایه برای دسترسی سریع به مقادیری از یک نوع هستندبه وجود اومد( که پشت سر بودن این ارایه سرعت میده) اما الگوریتم بالا که بهتون گفتم ممکنه هی ارایه رو بزرگ بکنه و یهویی جا برای ارایه نیست(با توجه به قرار گیری وخانه های حافظه مثلا شما بعد ارایتون که یه خونه ی هست یه اینت تعریف کردید که این اینت برای ارایه در حال رشد ما شر میشه ) سیستم مجبور میشه ارایه رو کپی بکنه یه جای دیگه (البته اینجا رو مطمین نیستم شاید کاتش بکنه ولی اگه کپیش کنه حافظه که خیلیی به فنا میره !پس میگیم کاتش میکنه! )حالا کاربر میدونه چند تا عدد اسم یا عدد یا هرچیری بده خب ماهم اون مقدار رو به شکل زیر میذارپیشفرض اینکه کاربر ۴ تا عدد وارده میکنه
int tedad;
cin >>tedad;
int adad = new int [4];
خب بعد از انجام عملیات حتما یادتون باشه حافظه گرفته شده رو ازاد بکنید برای ارایه ها اینطوریه
delet[]int;
یاعلی
خدانگهدار
برچسب:
نویسنده: سینا کاشفی