✨ add concat for vector
This commit is contained in:
parent
7e72661332
commit
32e23741eb
|
@ -322,6 +322,19 @@ inline void vm::o_sub() {op_calc(-);}
|
||||||
inline void vm::o_mul() {op_calc(*);}
|
inline void vm::o_mul() {op_calc(*);}
|
||||||
inline void vm::o_div() {op_calc(/);}
|
inline void vm::o_div() {op_calc(/);}
|
||||||
inline void vm::o_lnk() {
|
inline void vm::o_lnk() {
|
||||||
|
if (ctx.top[-1].type==vm_vec && ctx.top[0].type==vm_vec) {
|
||||||
|
ngc.temp = ngc.alloc(vm_vec);
|
||||||
|
for(auto i : ctx.top[-1].vec().elems) {
|
||||||
|
ngc.temp.vec().elems.push_back(i);
|
||||||
|
}
|
||||||
|
for(auto i : ctx.top[0].vec().elems) {
|
||||||
|
ngc.temp.vec().elems.push_back(i);
|
||||||
|
}
|
||||||
|
ctx.top[-1] = ngc.temp;
|
||||||
|
ngc.temp = nil;
|
||||||
|
--ctx.top;
|
||||||
|
return;
|
||||||
|
}
|
||||||
ctx.top[-1] = ngc.newstr(ctx.top[-1].tostr()+ctx.top[0].tostr());
|
ctx.top[-1] = ngc.newstr(ctx.top[-1].tostr()+ctx.top[0].tostr());
|
||||||
--ctx.top;
|
--ctx.top;
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,12 +45,12 @@ var var_sort=func(){
|
||||||
j-=1;
|
j-=1;
|
||||||
}
|
}
|
||||||
vec[i]=tmp;
|
vec[i]=tmp;
|
||||||
quick_sort_core(vec,left,i-1,cmp);
|
quick_sort_core(vec,left,i-1);
|
||||||
quick_sort_core(vec,i+1,right,cmp);
|
quick_sort_core(vec,i+1,right);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
return func(vec){
|
return func(vec){
|
||||||
quick_sort_core(vec,0,size(vec)-1,cmp);
|
quick_sort_core(vec,0,size(vec)-1);
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
}();
|
}();
|
|
@ -1,9 +1,10 @@
|
||||||
import.std.sort;
|
import.std.sort;
|
||||||
|
|
||||||
var vec=[];
|
var vec=[];
|
||||||
|
setsize(vec, 1e4);
|
||||||
rand(time(0));
|
rand(time(0));
|
||||||
for(var i=0;i<1e4;i+=1)
|
for(var i=0;i<1e4;i+=1)
|
||||||
append(vec,int(rand()*1e5));
|
vec[i] = int(rand()*1e5);
|
||||||
sort(vec);
|
sort(vec);
|
||||||
for(var i=1;i<1e4;i+=1) {
|
for(var i=1;i<1e4;i+=1) {
|
||||||
if (vec[i]<vec[i-1]) {
|
if (vec[i]<vec[i-1]) {
|
||||||
|
@ -20,7 +21,7 @@ var test=func(n){
|
||||||
var ts=maketimestamp();
|
var ts=maketimestamp();
|
||||||
ts.stamp();
|
ts.stamp();
|
||||||
var_sort(a);
|
var_sort(a);
|
||||||
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (value)");
|
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (direct cmp)");
|
||||||
|
|
||||||
var a=[];
|
var a=[];
|
||||||
setsize(a,n);
|
setsize(a,n);
|
||||||
|
@ -29,7 +30,7 @@ var test=func(n){
|
||||||
}
|
}
|
||||||
ts.stamp();
|
ts.stamp();
|
||||||
sort(a);
|
sort(a);
|
||||||
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (lambda)");
|
println("[time] ",str(n)," in ",ts.elapsedMSec()/1000," sec (lambda cmp)");
|
||||||
}
|
}
|
||||||
|
|
||||||
for(var i=1000;i<1e6;i*=10){
|
for(var i=1000;i<1e6;i*=10){
|
||||||
|
|
|
@ -245,6 +245,7 @@ var next_to_last = list1[-2];
|
||||||
# concatenate vectors:
|
# concatenate vectors:
|
||||||
#
|
#
|
||||||
var joined_list = [1, 2, 3] ~ [4, 5, 6];
|
var joined_list = [1, 2, 3] ~ [4, 5, 6];
|
||||||
|
print(joined_list, "\n");
|
||||||
|
|
||||||
###
|
###
|
||||||
### Now some fun examples:
|
### Now some fun examples:
|
||||||
|
|
|
@ -228,4 +228,6 @@ for(var a=0;a<16;a+=1) {
|
||||||
var temp=b;
|
var temp=b;
|
||||||
println("temp^=0x"~h[a]~" -> 0x",h[temp^=a]," temp&=0x"~h[a]~" -> 0x",h[temp&=a]," temp|=0x"~h[a]~" -> 0x",h[temp|=a]);
|
println("temp^=0x"~h[a]~" -> 0x",h[temp^=a]," temp&=0x"~h[a]~" -> 0x",h[temp&=a]," temp|=0x"~h[a]~" -> 0x",h[temp|=a]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print([0, 1, 2]~[3, 4, 5], "\n");
|
Loading…
Reference in New Issue