Implement the remove method for deleting entries from the SetVector.
authorReid Spencer <rspencer@reidspencer.com>
Sat, 11 Sep 2004 04:25:58 +0000 (04:25 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sat, 11 Sep 2004 04:25:58 +0000 (04:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16283 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/SetVector.h

index 6135e53286121496dc1f96b1ee2abbc1813dddad..8d7382e05632d18da231c7fb0620d6ee0cd38120 100644 (file)
@@ -20,6 +20,7 @@
 #include <set>
 #include <vector>
 #include <cassert>
+#include <algorithm>
 
 namespace llvm {
 
@@ -108,6 +109,16 @@ public:
         vector_.push_back(*Start);
   }
 
+  /// @brief Remove an item from the set vector.
+  void remove(const value_type& X) {
+    if (0 < set_.erase(X)) {
+      iterator I = find(vector_.begin(),vector_.end(),X);
+      if (I != vector_.end())
+        vector_.erase(I);
+    }
+  }
+
+
   /// @returns 0 if the element is not in the SetVector, 1 if it is.
   /// @brief Count the number of elements of a given key in the SetVector.
   size_type count(const key_type &key) const {