// valarrayの使用例 #include < iostream> #include < valarray> #include < cmath> using namespace std; int main() { valarray< int> v(10); int i; for(i=0; i<10; i++) v[i] = i; cout << "Original contents: "; for(i=0; i<10; i++) cout << v[i] << " "; cout << endl; v = v.cshift(3); cout << "Shifted contents: "; for(i=0; i<10; i++) cout << v[i] << " "; cout << endl; valarray< bool> vb = v < 5; cout << "Those elements less than 5: "; for(i=0; i<10; i++) cout << vb[i] << " "; cout << endl << endl; valarray< double> fv(5); for(i=0; i<5; i++) fv[i] = (double) i; cout << "Original contents: "; for(i=0; i<5; i++) cout << fv[i] << " "; cout << endl; fv = sqrt(fv); cout << "Square roots: "; for(i=0; i<5; i++) cout << fv[i] << " "; cout << endl; fv = fv + fv; cout << "Double the square roots: "; for(i=0; i<5; i++) cout << fv[i] << " "; cout << endl; fv = fv - 10.0; cout << "After subtracting 10 from each element:\n"; for(i=0; i<5; i++) cout << fv[i] << " "; cout << endl; return 0; }
// sliceの使用例 #include < iostream> #include < valarray> using namespace std; int main() { valarray< int> v(10), result; int i; for(i=0; i<10; i++) v[i] = i; cout << "Contents of v: "; for(i=0; i<10; i++) cout << v[i] << " "; cout << endl; result = v[slice(0,5,2)]; cout << "Contents of result: "; for(i=0; i< result.size(); i++) cout << result[i] << " "; return 0; }
// gslice()の使用例 #include < iostream> #include < valarray> using namespace std; int main() { valarray< int> v(16), result; valarray< size_t> len(2), interval(2); int i; for(i=0; i<16; i++) v[i] = i; len[0] = 3; len[1] = 3; interval[0] = 4; interval[1] = 1; cout << "Contents of v: "; for(i=0; i<16; i++) cout << v[i] << " "; cout << endl; result = v[gslice(0,len,interval)]; cout << "Contents of result: "; for(i=0; i< result.size(); i++) cout << result[i] << " "; return 0; }