سؤال
لدي (يحتمل أن تكون غبية) سؤال حول C++ الخاصة بلبنان.عندما كنت جعل حاوية (ناقلات, مجموعة, خريطة, الخ), هو تخصيص كومة أو على كومة?إذا كنت وضعت 5 ملايين سلاسل, سوف لا داعي للقلق حول تجاوز سعة مكدس?
المحلول
المحكمة الخاصة بلبنان الطبقات بشكل افتراضي تخصيص المخازن المؤقتة الداخلية من الكومة ، على الرغم من أن هذه الفئات أيضا تسمح مخصص allocators التي تتيح للمستخدم تحديد موقع بديل تخصيص من - على سبيل المثال ، بركة الذاكرة المشتركة.
نصائح أخرى
افتراضي مخصص عن المحكمة الخاصة بلبنان حاويات يستخدم المشغل الجديد وحذف ، لذلك مهما كانت تلك الطريق إلى نوع يجري الواردة.(في عام ، فإنه يأتي من كومة إلا إذا كنت تفعل شيئا لتجاوز ذلك.)
أنك لن تحصل على كومة تجاوز سعة من تخصيص 5 مليون السلاسل.حتى لو المكدس على أساس مخصص ، فإنه ربما تجاوز حتى قبل أن إدراج سلسلة واحدة.
الحاوية نفسها المخصصة حيث تقرر (يمكن أن يكون كومة كومة ، كائن الأعضاء ، الخ) ولكن الذاكرة فإنه يستخدم بشكل افتراضي مثل الآخرين وصفها ، تؤخذ على متجر مجانا (من خلال الجديدة وحذف) الذي هو ليس نفس كومة (من خلال malloc/مجانا).