আমি একটি পদার্থবিজ্ঞানের সিমুলেশন বিকাশ করছি এবং আমি প্রোগ্রামিংয়ের পরিবর্তে নতুন হয়ে থাকি, বড় প্রোগ্রামগুলি তৈরি করার সময় আমি সমস্যার মধ্যে পড়ে যাই (মূলত স্মৃতি বিষয়গুলি)। আমি ডায়নামিক মেমোরি বরাদ্দ এবং মুছে ফেলার (নতুন / মুছে ফেলা ইত্যাদি) সম্পর্কে জানি, তবে আমি কীভাবে প্রোগ্রামটি কাঠামোগত করি তার জন্য আমার আরও ভাল পদ্ধতির প্রয়োজন।
ধরা যাক, আমি একটি পরীক্ষার নমুনা দিচ্ছি যা বেশ কয়েকটি বড় নমুনা হারের সাথে কয়েক দিনের জন্য চলছে। আমার এক বিলিয়ন নমুনা অনুকরণ করতে হবে এবং সেগুলি দিয়ে চালানো দরকার।
একটি অতি-সরল সংস্করণ হিসাবে, আমরা বলব যে একটি প্রোগ্রাম ভোল্টেজ ভি [i] নেয়, এবং তাদের যোগফলকে পাঁচ দশকে:
যেমন নিউভিউ [0] = ভি [0] + ভি [1] + ভি [2] + ভি [3] + ভি [৪]
তারপরে NewV [1] = ভি [1] + ভি [2] + ভি [3] + ভি [4] + ভি [5]
তারপরে NewV [2] = ভি [2] + ভি [3] + ভি [4] + ভি [5] + ভি [6] ... এবং এটি এক বিলিয়ন নমুনায় চলেছে।
শেষ অবধি, আমার কাছে ভি [0], ভি [1], ..., ভি [1000000000] থাকতে হবে, যখন কেবলমাত্র পরবর্তী পদক্ষেপের জন্য আমার সংরক্ষণ করতে হবে কেবলমাত্র শেষ 5 ভি [i] গুলি।
আমি অ্যারের অংশটি কীভাবে মুছে ফেলব / ডিলোকল্ট করব যাতে মেমরিটি আবার ব্যবহারের জন্য নিখরচায় থাকে (উদাহরণের প্রথম অংশের পরে ভি [0] বলুন যেখানে এটির আর প্রয়োজন নেই)? কীভাবে এই জাতীয় প্রোগ্রাম গঠনের বিকল্প রয়েছে?
আমি ম্যালোক / ফ্রি সম্পর্কে শুনেছি, তবে শুনেছি সেগুলি সি ++ এ ব্যবহার করা উচিত নয় এবং এর চেয়ে আরও ভাল বিকল্প রয়েছে।
অনেক ধন্যবাদ!
tldr; অ্যারের অংশগুলি (স্বতন্ত্র উপাদান) দিয়ে কী করব আমার আর দরকার নেই যা বিপুল পরিমাণ স্মৃতি গ্রহণ করছে?
V
নতুন অ্যারের পরিবর্তে সংরক্ষণ করতে পারেন । মৌলিকভাবে, যদিও আমি মনে করি আপনার সমস্যাটি হয় আপনার অ্যালগরিদমে বা আপনার ডেটা স্ট্রাকচারে রয়েছে এবং যেহেতু আমাদের কোনও বিবরণ নেই তাই এটি কীভাবে দক্ষতার সাথে করা যায় তা জানা শক্ত।