IMP  2.0.0
The Integrative Modeling Platform
set.h
Go to the documentation of this file.
1 /**
2  * \file IMP/base/set.h
3  * \brief Declare an efficient stl-compatible set.
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPBASE_SET_H
9 #define IMPBASE_SET_H
10 
11 #include <IMP/base/base_config.h>
12 #include <boost/version.hpp>
13 
14 #include <boost/unordered_set.hpp>
15 #include "hash.h"
16 
17 
18 IMPBASE_BEGIN_NAMESPACE
19 
20 /** This class chooses the best of STL compatible non-ordered
21  set available. This will, in general, be a hash set if it
22  is available or std::set if it is not.
23 */
24 template <class Key>
25 class set:
26  public boost::unordered_set<Key>
27 {
28  typedef boost::unordered_set<Key> P;
29 public:
30  set(){}
31  template <class It>
32  set(It b, It e): P(b,e){}
33 };
34 
35 IMPBASE_END_NAMESPACE
36 
37 #endif /* IMPBASE_SET_H */