From 7e39ee2a8ce9bda0bda29cf289b54b87e76b1bb2 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 5 Nov 1996 16:55:42 +0000 Subject: [PATCH] flower-1.0.5 --- flower/associter.hh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 flower/associter.hh diff --git a/flower/associter.hh b/flower/associter.hh new file mode 100644 index 0000000000..6103f2266c --- /dev/null +++ b/flower/associter.hh @@ -0,0 +1,42 @@ +/* + associter.hh -- part of flowerlib + + (c) 1996 Han-Wen Nienhuys +*/ + +#ifndef ASSOCITER_HH +#define ASSOCITER_HH + +#include "assoc.hh" + +/// an iterator for the #Assoc# class +template +struct Assoc_iter { + int i; + Assoc &assoc_; + + Assoc_iter(Assoc &a) : + assoc_(a) + { + i= next(0); + } + int next(int j) { + while (j < assoc_.arr.sz() && assoc_.arr[j].free) + j++; + return j; + } + bool ok() const { + return i < assoc_.arr.sz(); + } + void OK()const { + assert(!ok() || !assoc_.arr[i].free); + } + void operator++(int) { i++; i = next(i); } + K key() { return assoc_.arr[i].key; } + V &val() { return assoc_.arr[i].val; } +}; +/* + Iterator + */ + +#endif -- 2.39.5