I don't think there are iterators for associative arrays, and cap() keeps
returning zero even though you've added stuff.
/Stefan
On Wed, Sep 30, 2009 at 3:52 PM, Hans Aberg
On 30 Sep 2009, at 14:26, Robert Poor wrote:
Of course I'd love to use a hashmap. But how do you get one in Chuck?
AFIK, the existing chuckain "hash array" lacks a means to iterate over its contents.
You want something like std::set, right? ONe can use the chuck associative arrays as follows:
int set[0];
1 => set["hello"]; 1 => set["world"];
if (set["this"] == 1) <<< "ok" >>>; else <<< "nope" >>>;
if (set["hello"] == 1) <<< "ok" >>>; else <<< "nope" >>>;
I got the printout: $ chuck set.ck "nope" : (string) "ok" : (string)
It means that chuck treats an empty index as returning the int 0. So by setting the other entries to a non-zero value, one can make use of that implementation.
Insertion and deletion is easy. For deletion, just set the value to 0 - it will remain there, but checks will say it is empty.
I couldn't find iterators for these associative arrays. I think they are implemented using std::map, though.
Hans
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
-- Release me, insect, or I will destroy the Cosmos!