digitalmars.D  Questions on array operations
 stonecobra (15/15) Jun 14 2004 Q1. What is the 'D' way to remove the 5th item from an array of 7? Is i...
 Stewart Gordon (36/49) Jun 14 2004 No.
 Brad Anderson (4/16) Jun 14 2004 or

Carlos Santander B.
(26/26)
Jun 14 2004
"Brad Anderson"
escribió en el mensaje  Brad Anderson (6/36) Jun 15 2004 Yep, I think that's worded correctly. If I would have followed my own
 Matthew (4/30) Jun 18 2004 In STL it's called an asymmetric range, with the notation [from,to). The...

Carlos Santander B.
(11/11)
Jun 18 2004
"Matthew"
escribió en el mensaje
Q1. What is the 'D' way to remove the 5th item from an array of 7? Is it: array = array[0..4] ~ array[5..2]; Would this also work for a 2dimensional array? Q2. If I have a 2 dimensional dynamic array, how would I clear it? Would it look something like: array[][]=null; Q3. With the same 2dimensional dynamic array, how do I set the size of the sencond dimension? Is it: array[].length = 5; Q4. Again with the same array, how do I get the length of each dimension? Is it: int x = array.length; int y = array[].length; Thanks, Scott Sanders
Jun 14 2004
stonecobra wrote:Q1. What is the 'D' way to remove the 5th item from an array of 7? Is it: array = array[0..4] ~ array[5..2];No. I presume that's a typo for array = array[0..4] ~ array[5..7]; but it's one way, and perhaps the simplest, asssuming you mean 5th in the sense of array[0] being the first.Would this also work for a 2dimensional array?Yes, but only in the outermost dimension.Q2. If I have a 2 dimensional dynamic array, how would I clear it? Would it look something like: array[][]=null;What do you mean by clear?  set all values to zero? I'm not sure if array[][] = 0; works. If not, then this should: foreach (T[] row; array) row[] = 0; where T is whatever type the individual elements are.  make it a null array, i.e. one with no elements? array = null;Q3. With the same 2dimensional dynamic array, how do I set the size of the sencond dimension? Is it: array[].length = 5;Multidimensional dynamic arrays are not rectangular. They are simply arrays of arrays. Each array within the outer array has an independent length. But you can do something like foreach (inout T[] row; array) row.length = 5;Q4. Again with the same array, how do I get the length of each dimension? Is it: int x = array.length; int y = array[].length;Multidimensional dynamic arrays are not rectangular. They are simply arrays of arrays. Each array within the outer array has an independent length. But if you have set up all rows to have the same length, then you need only interrogate one of them: int y = array[0].length; If you really want dynamic rectangular arrays, you can either define your own class to do it, pick up one that someone's written (there probably are some around), or wait in the hope that Norbert's proposal http://homepages.uniregensburg.de/~nen10015/documents/Dmultidimarray.html be implemented. Stewart.  My email is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mailbombing at the moment. Please keep replies on the 'group where everyone may benefit.
Jun 14 2004
Stewart Gordon wrote:stonecobra wrote:or array = array[0..4] ~ array[5..6] if it's an array of 7.Q1. What is the 'D' way to remove the 5th item from an array of 7? Is it: array = array[0..4] ~ array[5..2];No. I presume that's a typo for array = array[0..4] ~ array[5..7];
Jun 14 2004
"Brad Anderson" <brad dsource.dot.org> escribió en el mensaje news:caknrk$1kee$1 digitaldaemon.com  Stewart Gordon wrote:  stonecobra wrote:   Q1. What is the 'D' way to remove the 5th item from an array of 7? Is  it:  array = array[0..4] ~ array[5..2];    No.   I presume that's a typo for   array = array[0..4] ~ array[5..7];   or   array = array[0..4] ~ array[5..6]   if it's an array of 7. Wrong there. Slices are exclusive to the end (can someone tell me if that's the right wording?) array[5..7]=array[5]~array[6];  Carlos Santander Bernal
Jun 14 2004
Carlos Santander B. wrote:"Brad Anderson" <brad dsource.dot.org> escribió en el mensaje news:caknrk$1kee$1 digitaldaemon.com  Stewart Gordon wrote:  stonecobra wrote:   Q1. What is the 'D' way to remove the 5th item from an array of 7? Is  it:  array = array[0..4] ~ array[5..2];    No.   I presume that's a typo for   array = array[0..4] ~ array[5..7];   or   array = array[0..4] ~ array[5..6]   if it's an array of 7. Wrong there. Slices are exclusive to the end (can someone tell me if that's the right wording?) array[5..7]=array[5]~array[6];  Carlos Santander BernalYep, I think that's worded correctly. If I would have followed my own logic like the 5..6, I would have had 0..3, but you're correct that it's 0..4 and 5..7 Damn am I lazy. Can't even do a small example before I posted. BA
Jun 15 2004
"Carlos Santander B." <carlos8294 msn.com> wrote in message news:calhks$2v9e$3 digitaldaemon.com..."Brad Anderson" <brad dsource.dot.org> escribió en el mensaje news:caknrk$1kee$1 digitaldaemon.com  Stewart Gordon wrote:  stonecobra wrote:   Q1. What is the 'D' way to remove the 5th item from an array of 7? Is  it:  array = array[0..4] ~ array[5..2];    No.   I presume that's a typo for   array = array[0..4] ~ array[5..7];   or   array = array[0..4] ~ array[5..6]   if it's an array of 7. Wrong there. Slices are exclusive to the end (can someone tell me if that's the right wording?)In STL it's called an asymmetric range, with the notation [from,to). The ) represents that it's one past the end.array[5..7]=array[5]~array[6];  Carlos Santander Bernal
Jun 18 2004
"Matthew" <admin stlsoft.dot.dot.dot.dot.org> escribió en el mensaje news:cavmas$316d$1 digitaldaemon.com  In STL it's called an asymmetric range, with the notation [from,to). The )  represents that it's one past the end.  Understandable, but ambiguous. (from, to] is also asymmetric. (not too serious, btw) Anyway, that'd be only in the docs, right? Because there's no way to use that notation in D, is there?  Carlos Santander Bernal
Jun 18 2004