[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [bug-gawk] How to mimic inserting an element to a vector?

**From**: |
Wolfgang Laun |

**Subject**: |
Re: [bug-gawk] How to mimic inserting an element to a vector? |

**Date**: |
Thu, 11 Jul 2019 21:01:22 +0200 |

I thought there ought to be a function like length for arrays, but the
manual (Hint, hint!) doesn't mention it in the array section, and I've
learned it in the early days.
-E
On Thu, 11 Jul 2019 at 20:35, <address@hidden> wrote:
>* Your way seems to work. I would probably write it like this*
>* (untested):*
>
>* function insert(a, ind, val, i, l)*
>* {*
>* l = length(a)*
>* for (i = l; i >= ind; i--)*
>* a[i+1] = a[i]*
>
>* a[ind] = val*
>* }*
>
>* Arnold*
>
>* Peng Yu <address@hidden> wrote:*
>
>* > Hi,*
>* >*
>* > I use the following code to mimic inserting an element to a vector*
>* > (i.e, the keys are 1,2,...). But it is a little cumbersome. Is there*
>* > any implement that is better?*
>* >*
>* > function insert(a, i, v) {*
>* > for(k in a) {*
>* > if(k>=i) {*
>* > a[k+1] = a[k]*
>* > }*
>* > }*
>* > a[i] = v*
>* > }*
>* >*
>* > BEGIN {*
>* > for(i=1;i<=3;++i) {*
>* > a[i] = 100 + i*
>* > }*
>* > PROCINFO["sorted_in"] = "@ind_num_desc"*
>* > insert(a, 2, 2)*
>* >*
>* > PROCINFO["sorted_in"] = "@ind_num_asc"*
>* > for(k in a) {*
>* > print k, a[k]*
>* > }*
>* > }*
>* >*
>* > --*
>* > Regards,*
>* > Peng*
>
>
>