static void lablist(Term t) { if(is_list(t)) { List l; for(l=t;l;l=ListTail(l)) { Term m=ListFirst(l); if(is_label(m) && !ListMember(labl,m)) labl=AppendFirst(labl,m); else lablist(m); } } if(is_compound(t)) { int i; for(i=1;i<=CompoundArity(t);i++) { Term m=CompoundArgN(t,i); if(is_label(m) && !ListMember(labl,m)) labl=AppendFirst(labl,m); else lablist(m); } } }
int main(int argc, char *argv[]) { // zero size list List<scalar> scalist; // list with given length labelList lablist(10); // list with given length and initial value for all elements List<vector> veclist(5,vector::one); // list created from input script fileName fname("./input"); IFstream is(fname); scalarList scalist2(is); // size() gets size of list for(label i=0;i<scalist2.size();i++) Info << "scalist2["<<i<<"] = " << scalist2[i] << endl; // sort(list) sorts list elements sort(scalist2); for(label i=0;i<scalist2.size();i++) Info << "scalist2["<<i<<"] = " << scalist2[i] << endl; // setSize(newSize) sets new size and keep stored data scalist2.setSize(15); Info << "scalist2.size() = " << scalist2.size() << endl; return 0; }
void renewlab(Term t) { List l; labl=0; labm=0; lablist(t); for(l=labl;l;l=ListTail(l)) labm=AppendFirst(labm,NewLabel()); chlabs(t); if(labl) {FreeAtomic(labl);FreeAtomic(labm);} }
int main(int argc, char *argv[]) { fileName fname("./input"); IFstream is(fname); List<label> lablist(is); // reference to 5 elements of lablist starting // with 0 element SubList<label> slablist1(lablist,5); Info << "slablist1 = " << slablist1 << endl; // reference to 5 elements of lablist starting // with 4 element (note that the array starts // with 0 SubList<label> slablist2(lablist,5,3); Info << "slablist2 = " << slablist2 << endl; return 0; }