aboutsummaryrefslogtreecommitdiff
path: root/src/AMRPlus/ordarrays.h
blob: b830984b3e63d64106e071b5e31331b4e262774b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "arrays.h"



template <class X>
class flexset : private array<X>{
    public:
    ordarray(): array<X>(){};
    ~ordarray(){};
    int insert(const X &elt){
	int a=0, b=getLength()-1;
	X* data=this->getData(0);
	if (elt==data[0]) this->insertElement(elt, 0);
	if (elt==data[b]) insertElement(elt, b);
	int c=(a+b)/2;
	while (elt!=data[c]){
	    if (a==b) {insertElement(elt, a); return a;}
	    if (elt<data[c])
	}
	
    };
    
};