ما الجملة لاستخدام دفعة::pool_allocator مع دفعة::unordered_map?
-
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;
أيضا, ولكن ربما ليس سبب المشكلة, تحتاج إلى فصل اثنين '>' في نهاية قالب مثيل.
لا تنتمي إلى StackOverflow