/* ---------------------------------------------------------------------------- * 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 FastSet.h * @brief A thin wrapper around std::set that uses boost's fast_pool_allocator. * @author Richard Roberts * @created Oct 17, 2010 */ #pragma once #include #include namespace gtsam { /** * FastSet is a thin wrapper around std::set 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 FastSet: public std::set, boost::fast_pool_allocator > { public: typedef std::set, boost::fast_pool_allocator > Base; /** Constructor from a range, passes through to base class */ template FastSet(InputIterator first, InputIterator last) : Base(first, last) {} /** Copy constructor from another FastMap */ FastSet(const FastSet& x) : Base(x) {} /** Copy constructor from the base map class */ FastSet(const Base& x) : Base(x) {} }; }