summaryrefslogtreecommitdiff
path: root/extractor/veb_bitset.cc
diff options
context:
space:
mode:
Diffstat (limited to 'extractor/veb_bitset.cc')
-rw-r--r--extractor/veb_bitset.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/extractor/veb_bitset.cc b/extractor/veb_bitset.cc
new file mode 100644
index 00000000..4e364cc5
--- /dev/null
+++ b/extractor/veb_bitset.cc
@@ -0,0 +1,25 @@
+#include "veb_bitset.h"
+
+using namespace std;
+
+VEBBitset::VEBBitset(int size) : bitset(size) {
+ min = max = -1;
+}
+
+void VEBBitset::Insert(int value) {
+ bitset[value] = 1;
+ if (min == -1 || value < min) {
+ min = value;
+ }
+ if (max == - 1 || value > max) {
+ max = value;
+ }
+}
+
+int VEBBitset::GetSuccessor(int value) {
+ int next_value = bitset.find_next(value);
+ if (next_value == bitset.npos) {
+ return -1;
+ }
+ return next_value;
+}