"Ary Manzana" <a...@esperanto.org.ar> wrote in message news:j89gle$9nn$1...@digitalmars.com... > On 10/26/11 1:28 PM, Jonathan M Davis wrote: >> On Wednesday, October 26, 2011 09:00 Dominic Jones wrote: >>>> Also an plain array is a good stack. :) >>> >>> I'd rather not use a plain array because (I assume) that when I push >>> or pop using arrays, a swap array is created to resize the original. >>> If this is not the case, then an array will certainly do. >>> -Dominic >> >> Not exactly. If you want to know more about how arrays work, you should >> read >> this: http://www.dsource.org/projects/dcollections/wiki/ArrayArticle It's >> a >> great read. As for using an array as a stack, you can do it with a >> wrapper >> struct, but using it by itself would result in a lot more reallocations >> than >> you'd want, as discussed here: >> https://www.semitwist.com/articles/article/view/don-t-use-arrays-as-stacks >> >> - Jonathan M Davis > > I think that if you have to read an article that long, with all the > explanations of the different caveats a programmer can bump to when using > them, to understand how arrays and slices work.... something must be > wrong. > > Things should be simpler.
FWIW, my article can be summarized with a line that's [poorly] located right around the middle (annotations added): "Slicing an array is fast [no allocation or copying], and appending is usually fast [usually no allocation or copying], but slicing the end off and then appending is slow [does an allocate and copy]." I guess I have a habit of making things longer than they need to be ;)