diff options
author | Douglas Gregor <dgregor@apple.com> | 2013-02-18 16:03:04 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2013-02-18 16:03:04 +0000 |
commit | 879c90807d44c20bf75d1858f6b7a3f1e1f2926f (patch) | |
tree | 6575c098b6e0b5df057bacc796ef43e10b88de9e | |
parent | 1c15cd6aaa5d1aa4d0d9226381be71eb9746787e (diff) | |
download | bcm5719-llvm-879c90807d44c20bf75d1858f6b7a3f1e1f2926f.tar.gz bcm5719-llvm-879c90807d44c20bf75d1858f6b7a3f1e1f2926f.zip |
Add front/back/erase to MapVector.
llvm-svn: 175449
-rw-r--r-- | llvm/include/llvm/ADT/MapVector.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/include/llvm/ADT/MapVector.h b/llvm/include/llvm/ADT/MapVector.h index f29681f644e..405fc43978c 100644 --- a/llvm/include/llvm/ADT/MapVector.h +++ b/llvm/include/llvm/ADT/MapVector.h @@ -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); + } }; } |