summaryrefslogtreecommitdiff
path: root/extractor/veb.h
blob: c8209cf76f09fc1757252ffe825d5816d54f47d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef _VEB_H_
#define _VEB_H_

#include <memory>

using namespace std;

class VEB {
 public:
  static shared_ptr<VEB> Create(int size);

  virtual void Insert(int value) = 0;

  virtual int GetSuccessor(int value) = 0;

  int GetMinimum();

  int GetMaximum();

  static int MIN_BOTTOM_BITS;
  static int MIN_BOTTOM_SIZE;

 protected:
  VEB(int min = -1, int max = -1);

  int min, max;
};

#endif