return Vector.empty();
}
+ std::pair<KeyT, ValueT> &front() { return Vector.front(); }
+ const std::pair<KeyT, ValueT> &front() const { return Vector.front(); }
+ std::pair<KeyT, ValueT> &back() { return Vector.back(); }
+ const std::pair<KeyT, ValueT> &back() const { return Vector.back(); }
+
void clear() {
Map.clear();
Vector.clear();
return Pos == Map.end()? Vector.end() :
(Vector.begin() + Pos->second);
}
+
+ /// \brief Erase entry with the given key.
+ void erase(const KeyT &key) {
+ typename MapType::iterator Pos = Map.find(key);
+ if (Pos == Map.end())
+ return;
+
+ Vector.erase(Vector.begin() + Pos->second);
+ Map.erase(Pos);
+ }
};
}