ما الجملة لاستخدام دفعة::pool_allocator مع دفعة::unordered_map?

StackOverflow https://stackoverflow.com/questions/1061543

  •  21-08-2019
  •  | 
  •  

سؤال

أنا مجرد تجارب مع دفعة::تجمع لمعرفة ما إذا أسرع مخصص للأشياء أنا أعمل مع, ولكن أنا لا يمكن معرفة كيفية استخدامها مع دفعة::unordered_map:

هنا مقتطف الشفرة:

unordered_map<int,int,boost::hash<int>, fast_pool_allocator<int>> theMap;   
theMap[1] = 2;

هنا هو خطأ ترجمة أحصل على:

خطأ 3 خطأ C2064:المصطلح لا تقييم وظيفة اتخاذ الحجج 2 C:\Program Files (x86)\دفعة\boost_1_38\دفعة\غير مرتبة\تفصيل\hash_table_impl.hpp 2048

إذا أعلق من استخدام الخريطة على سبيل المثال"الخريطة[1] = 2" ثم خطأ ترجمة يذهب بعيدا.

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

المحلول

يبدو أن كنت في عداد المفقودين قالب المعلمة.

template<typename Key, typename Mapped, typename Hash = boost::hash<Key>, 
     typename Pred = std::equal_to<Key>, 
     typename Alloc = std::allocator<std::pair<Key const, Mapped> > > 

المعلمة الرابع هو المسند للمقارنة الخامس هو مخصص.

unordered_map<int, int, boost::hash<int>,
     std::equal_to<int>, fast_pool_allocator<int> > theMap;

أيضا, ولكن ربما ليس سبب المشكلة, تحتاج إلى فصل اثنين '>' في نهاية قالب مثيل.

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