Could you give a example code?

On Thursday, February 26, 2015 at 5:53:51 PM UTC+1, Tim Holy wrote:
>
> There's also a RopeString type. 
>
> --Tim 
>
> On Thursday, February 26, 2015 07:32:27 AM David P. Sanders wrote: 
> > El jueves, 26 de febrero de 2015, 9:15:38 (UTC-6), Josh Langsfeld 
> escribió: 
> > > It's equivalent to str = str * "def". I believe that's the case for 
> all 
> > > +=, *=, etc operators and all types. 
> > 
> > That's correct. So the original code is O(n^2). A good way to do this is 
> > using IOBuffer, as below. 
> > 
> > function concat1(N) 
> >     s="" 
> >     for i=1:N 
> >         s*=string(i) 
> >     end 
> >     s 
> > end 
> > 
> > function concat2(N) 
> >     buf = IOBuffer() 
> >     for i=1:N 
> >         print(buf, string(i)) 
> >     end 
> >     takebuf_string(buf) 
> > end 
> > 
> > # Compile the functions and check they give the same output: 
> > N = 10 
> > println(concat1(N)) 
> > println(concat2(N)) 
> > 
> > N = 10000 
> > @time concat1(N); 
> > @time concat2(N); 
> > 
> > With N = 100000, concat2 is almost instantaneous, and I couldn't be 
> > bothered to wait for concat1 to finish. 
> > 
> > David. 
> > 
> > > On Thursday, February 26, 2015 at 9:23:19 AM UTC-5, Jerry Xiong wrote: 
> > >> Considering below code: 
> > >> str="abc" 
> > >> str*="def" 
> > >> Is the new string "def" just be appended after the memory space of 
> "abc", 
> > >> or both strings were copied to a new momory space? Is str*="def" 
> equal to 
> > >> str=str*"def" and str="$(str)def" in speed and memory level? Is below 
> > >> code 
> > >> in O(n) or in O(n^2) speed? 
> > >> 
> > >> s="" 
> > >> for i=1:10000 
> > >> 
> > >>     s*=string(i) 
> > >> 
> > >> end 
>
>

Reply via email to