summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2013-02-18 16:03:04 +0000
committerDouglas Gregor <dgregor@apple.com>2013-02-18 16:03:04 +0000
commit879c90807d44c20bf75d1858f6b7a3f1e1f2926f (patch)
tree6575c098b6e0b5df057bacc796ef43e10b88de9e
parent1c15cd6aaa5d1aa4d0d9226381be71eb9746787e (diff)
downloadbcm5719-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.h15
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);
+ }
};
}
OpenPOWER on IntegriCloud