summaryrefslogtreecommitdiff
path: root/impl/IdSet.hpp
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-07-09 13:10:32 +1000
committerCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-07-09 13:10:32 +1000
commit049a16d1b1a683487a0c17014e9f7c477820a132 (patch)
tree1e8ef2c44cbc7eb154b245f618794776587619b0 /impl/IdSet.hpp
parentf7d846f18354e254353bc417ed1a666c59ef3ea2 (diff)
Fixed up the newer strategy iteration stuff
Trivial 100000 var case in 15s on my Uni machine.
Diffstat (limited to 'impl/IdSet.hpp')
-rw-r--r--impl/IdSet.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/impl/IdSet.hpp b/impl/IdSet.hpp
index 99f89cc..950b1e1 100644
--- a/impl/IdSet.hpp
+++ b/impl/IdSet.hpp
@@ -39,6 +39,16 @@ class IdSet {
}
}
+ IdSet inverse() const {
+ IdSet other(_range);
+ for (unsigned int i = 0; i < _range; ++i) {
+ if (_set.find(i) == _set.end()) {
+ other._set.insert(i);
+ }
+ }
+ return other;
+ }
+
bool contains(const T& obj) const {
return _set.find(obj.id()) != _set.end();
}