سؤال

لدي (يحتمل أن تكون غبية) سؤال حول C++ الخاصة بلبنان.عندما كنت جعل حاوية (ناقلات, مجموعة, خريطة, الخ), هو تخصيص كومة أو على كومة?إذا كنت وضعت 5 ملايين سلاسل, سوف لا داعي للقلق حول تجاوز سعة مكدس?

هل كانت مفيدة؟

المحلول

المحكمة الخاصة بلبنان الطبقات بشكل افتراضي تخصيص المخازن المؤقتة الداخلية من الكومة ، على الرغم من أن هذه الفئات أيضا تسمح مخصص allocators التي تتيح للمستخدم تحديد موقع بديل تخصيص من - على سبيل المثال ، بركة الذاكرة المشتركة.

نصائح أخرى

افتراضي مخصص عن المحكمة الخاصة بلبنان حاويات يستخدم المشغل الجديد وحذف ، لذلك مهما كانت تلك الطريق إلى نوع يجري الواردة.(في عام ، فإنه يأتي من كومة إلا إذا كنت تفعل شيئا لتجاوز ذلك.)

أنك لن تحصل على كومة تجاوز سعة من تخصيص 5 مليون السلاسل.حتى لو المكدس على أساس مخصص ، فإنه ربما تجاوز حتى قبل أن إدراج سلسلة واحدة.

الحاوية نفسها المخصصة حيث تقرر (يمكن أن يكون كومة كومة ، كائن الأعضاء ، الخ) ولكن الذاكرة فإنه يستخدم بشكل افتراضي مثل الآخرين وصفها ، تؤخذ على متجر مجانا (من خلال الجديدة وحذف) الذي هو ليس نفس كومة (من خلال malloc/مجانا).

لا تخلط اثنين!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top