I don't think there are iterators for associative arrays, and cap() keeps returning zero even though you've added stuff.
/Stefan
On 30 Sep 2009, at 14:26, Robert Poor wrote:You want something like std::set, right? ONe can use the chuck associative arrays as follows:
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.
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