/* test/demo of Vecs, AVecs */ #include #include "int.Vec.h" #include "int.AVec.h" int int_compare(int a, int b) { return a - b; } int plus(int a, int b) { return a + b; } int inc(int a) { return a + 1; } void printint(int a) { cout << a << " "; } void print(intVec& a) { a.apply(printint); cout << "\n"; } main() { intVec a(20); for (int i = 0; i < a.capacity(); ++i) a[i] = rand() % 100; cout << "a: "; print(a); a.sort(int_compare); cout << "a.sort():"; print(a); intVec b = map(inc, a); cout << "b = map(inc, a): "; print(b); intVec c = merge(a, b, int_compare); cout << "c = merge(a, b): "; print(c); intVec d = concat(a, b); cout << "d = concat(a, b): "; print(d); d.resize(10); cout << "d.resize(10): "; print(d); d.reverse(); cout << "d.reverse(): "; print(d); d.fill(0, 4, 4); cout << "d.fill(0, 4, 4): "; print(d); cout << "d.reduce(plus, 0) = " << d.reduce(plus, 0) << "\n"; intVec e = d.at(2, 5); cout << "e = d.at(2, 5): "; print(e); intAVec x(20); for (i = 0; i < x.capacity(); ++i) x[i] = i; cout << "x: "; print(x); intAVec y(20); for (i = 0; i < y.capacity(); ++i) y[i] = rand() % 100 + 1; cout << "y: "; print(y); cout << "x + y: "; print(x + y); cout << "x - y: "; print(x - y); cout << "product(x, y): "; print(product(x,y)); cout << "quotient(x, y): "; print(quotient(x,y)); cout << "x * y: " << (x * y) << "\n"; cout << "x + 2: "; print(x + 2); cout << "x - 2: "; print(x - 2); cout << "x * 2: "; print(x * 2); cout << "x / 2: "; print(x / 2); intAVec z(20, 1); cout << "z(20, 1): "; print(z); cout << "z = -z: "; print(z = -z); cout << "z += x: "; print(z += x); cout << "z -= x: "; print(z -= x); cout << "x.sum(): " << x.sum() << "\n"; cout << "x.sumsq(): " << x.sumsq() << "\n"; cout << "x.min(): " << x.min() << "\n"; cout << "x.max(): " << x.max() << "\n"; cout << "x.min_index(): " << x.min_index() << "\n"; cout << "x.max_index(): " << x.max_index() << "\n"; cout << "\nEnd of test\n"; }