/* ---------------------------------------------------------------------------- * GTSAM Copyright 2010, Georgia Tech Research Corporation, * Atlanta, Georgia 30332-0415 * All Rights Reserved * Authors: Frank Dellaert, et al. (see THANKS for the full author list) * See LICENSE for the license information * -------------------------------------------------------------------------- */ /** * @file FastMap.h * @brief A thin wrapper around std::map that uses boost's fast_pool_allocator. * @author Richard Roberts * @created Oct 17, 2010 */ #pragma once #include #include namespace gtsam { /** * FastMap is a thin wrapper around std::map that uses the boost * fast_pool_allocator instead of the default STL allocator. This is just a * convenience to avoid having lengthy types in the code. Through timing, * we've seen that the fast_pool_allocator can lead to speedups of several * percent. */ template class FastMap : public std::map, boost::fast_pool_allocator > > { public: typedef std::map, boost::fast_pool_allocator > > Base; /** Default constructor */ FastMap() {} /** Constructor from a range, passes through to base class */ template FastMap(InputIterator first, InputIterator last) : Base(first, last) {} /** Copy constructor from another FastMap */ FastMap(const FastMap& x) : Base(x) {} /** Copy constructor from the base map class */ FastMap(const Base& x) : Base(x) {} }; }