Associative array and ranges

Nrgyzer nrgyzer at gmail.com
Thu Feb 3 06:35:44 PST 2011


== Auszug aus bearophile (bearophileHUGS at lycos.com)'s Artikel
> Nrgyzer:
> > Is there any chance to cast/convert this array to an indexed
array or
> > is it possible to iterate over specific indices? I know that
there is
> > something like next() for the foreach-statement but when the array
> > contains some thousand instances and I only want iterate over (for
> > example) 5 elements I think that's the wrong way.
> Show a hypothetical code example of what you desire to do, please.
> Bye,
> bearophile

Example:

...
class Example(T : Drawable) : Drawable {

	T[hash_t] pObjectsToDraw;

	uint pFrom, pTo;

	void setLimit(from, to) {
		pFrom = from;
		pTo = to;
	}

	void remove(T objToRemove) {
		pObjectsToDraw.remove(objToRemove.toHash());
	}

	override void draw() {
		for (uint i = pFrom; i < pTo; i++) {
			pOjectsToDraw[i].draw(); // cannot call
because pObjectsToDraw is an associative and no static or dynamic
array
		}
	}

}


More information about the Digitalmars-d-learn mailing list