Add front/back/erase to MapVector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175449 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Douglas Gregor 2013-02-18 16:03:04 +00:00
parent e3111964a0
commit 888fae7b49

View File

@ -64,6 +64,11 @@ public:
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();
@ -113,6 +118,16 @@ public:
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);
}
};
}