1 #ifndef WIRECELLUTIL_INDEXEDSET 2 #define WIRECELLUTIL_INDEXEDSET 4 #include <unordered_map> 19 typedef typename collection_type::size_type
size_type;
23 size_type
size() {
return collection.size(); }
26 auto mit = index.find(obj);
27 if (mit != index.end()) {
33 auto mit = index.find(obj);
34 if (mit != index.end()) {
37 int index_number = collection.size();
38 index[obj] = index_number;
39 collection.push_back(obj);
43 bool has(
const TYPE& obj) {
44 auto mit = index.find(obj);
45 return mit != index.end();
collection_type collection
collection_type::size_type size_type
int operator()(const TYPE &obj)
int operator()(const TYPE &obj) const
std::unordered_map< TYPE, int > index_type
std::vector< TYPE > collection_type
bool has(const TYPE &obj)