digitalmars.D.learn - How to clear associative array
- Zarathustra <adam.chrapkowski gmail.com> Aug 01 2008
- "Steven Schveighoffer" <schveiguy yahoo.com> Aug 01 2008
- BCS <ao pathlink.com> Aug 01 2008
- "Steven Schveighoffer" <schveiguy yahoo.com> Aug 01 2008
- BCS <ao pathlink.com> Aug 01 2008
- Max Samukha <samukha voliacable.com.removethis> Aug 01 2008
As in subject. Type [KeyType] array; array[new KeyType(...)] = new Type(...); ... delete array; // error
Aug 01 2008
"Zarathustra"As in subject. Type [KeyType] array; array[new KeyType(...)] = new Type(...); ... delete array; // error
array = null; -Steve
Aug 01 2008
Reply to Zarathustra,As in subject. Type [KeyType] array; array[new KeyType(...)] = new Type(...); ... delete array; // error
I'm not sure how array=null will interact with other references to the same AA. This should clear them as well (but is more costly). foreach(k;array.keys)array.delete(k);
Aug 01 2008
"BCS" wroteReply to Zarathustra,As in subject. Type [KeyType] array; array[new KeyType(...)] = new Type(...); ... delete array; // error
I'm not sure how array=null will interact with other references to the same AA.
AA's are objects, so multiple references to the same AA would result in the data being retained for the references that you did not set to null. It would be nice to have a .clear function so you could deal with removing all elements when multiple references are used. -Steve
Aug 01 2008
Reply to Steven,"BCS" wroteReply to Zarathustra,As in subject. Type [KeyType] array; array[new KeyType(...)] = new Type(...); ... delete array; // error
the same AA.
in the data being retained for the references that you did not set to null. It would be nice to have a .clear function so you could deal with removing all elements when multiple references are used. -Steve
void clear(T)(T toClear) {foreach(key; toClear.keys) toClear.remove(key); } ?? O(n) (vs. O(1) for an internal version)
Aug 01 2008
On Fri, 1 Aug 2008 15:47:35 -0400, "Steven Schveighoffer" <schveiguy yahoo.com> wrote:"BCS" wroteReply to Zarathustra,As in subject. Type [KeyType] array; array[new KeyType(...)] = new Type(...); ... delete array; // error
I'm not sure how array=null will interact with other references to the same AA.
AA's are objects, so multiple references to the same AA would result in the data being retained for the references that you did not set to null. It would be nice to have a .clear function so you could deal with removing all elements when multiple references are used. -Steve
It would be also nice to be able to initialize an AA reference without adding a value to the array. int[int] a; int[int] b = a; a[1] = 2; auto x = b[1]; // oops
Aug 01 2008









"Steven Schveighoffer" <schveiguy yahoo.com> 