Du kan inte välja fler än 25 ämnen
Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
Den här utvecklingskatalogen är arkiverad. Du kan se filer och klona katalogen, men inte öppna ärenden eller genomföra push- eller pull-förfrågningar.
|
- var ensureTwoPower = function(n) {
- if (n && !(n & (n - 1))) return n;
- var p = 1;
- while (p < n) p <<= 1;
- return p;
- };
-
- var Cyclist = function(size) {
- if (!(this instanceof Cyclist)) return new Cyclist(size);
- size = ensureTwoPower(size);
- this.mask = size-1;
- this.size = size;
- this.values = new Array(size);
- };
-
- Cyclist.prototype.put = function(index, val) {
- var pos = index & this.mask;
- this.values[pos] = val;
- return pos;
- };
-
- Cyclist.prototype.get = function(index) {
- return this.values[index & this.mask];
- };
-
- Cyclist.prototype.del = function(index) {
- var pos = index & this.mask;
- var val = this.values[pos];
- this.values[pos] = undefined;
- return val;
- };
-
- module.exports = Cyclist;
|