#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
namespace ALL_Vector {
class Vector {
public:
// Intitialize elem and sz before the actual function
Vector(int size) :elem {new double[size]}, sz {size} {};
~Vector() {delete[] elem;};
double& operator[](int i) {
return elem[i];
};
int size() {return sz;};
private:
double* elem;
int sz;
};
void print_product(Vector& y) {
double result {1};
for (auto x = 0; x < y.size() ; x++){
if (y[x] > 0) {result *= y[x]; };
}
cout << "The product of Vector y is: " << result << ", or so it would appear ;)\n";
}
}
/*
Self test of the Vector class.
*/
int main(){
ALL_Vector::Vector myVector(15);
cout << "The size of Vector y is: " << myVector.size() << "\n";
myVector[0] = 12;
myVector[2] = 7;
myVector[3] = 19;
myVector[4] = 2;
ALL_Vector::print_product(myVector);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCm5hbWVzcGFjZSBBTExfVmVjdG9yIHsgCgogIGNsYXNzIFZlY3RvciB7CiAgICBwdWJsaWM6CiAgICAgIC8vIEludGl0aWFsaXplIGVsZW0gYW5kIHN6IGJlZm9yZSB0aGUgYWN0dWFsIGZ1bmN0aW9uCiAgICAgIFZlY3RvcihpbnQgc2l6ZSkgOmVsZW0ge25ldyBkb3VibGVbc2l6ZV19LCBzeiB7c2l6ZX0ge307CiAgICAgIH5WZWN0b3IoKSB7ZGVsZXRlW10gZWxlbTt9OwoKICAgICAgZG91YmxlJiBvcGVyYXRvcltdKGludCBpKSB7CiAgICAgICAgcmV0dXJuIGVsZW1baV07CiAgICAgIH07CiAgICAgIGludCBzaXplKCkge3JldHVybiBzejt9OwogICAgcHJpdmF0ZToKICAgICAgZG91YmxlKiBlbGVtOwogICAgICBpbnQgc3o7CiAgfTsKCgogIHZvaWQgcHJpbnRfcHJvZHVjdChWZWN0b3ImIHkpIHsKICAgIGRvdWJsZSByZXN1bHQgezF9OwoKICAgIGZvciAoYXV0byB4ID0gMDsgeCA8IHkuc2l6ZSgpIDsgeCsrKXsKICAgICAgaWYgKHlbeF0gPiAwKSB7cmVzdWx0ICo9IHlbeF07IH07CiAgICB9CgogICAgY291dCA8PCAiVGhlIHByb2R1Y3Qgb2YgVmVjdG9yIHkgaXM6ICIgPDwgcmVzdWx0IDw8ICIsIG9yIHNvIGl0IHdvdWxkIGFwcGVhciA7KVxuIjsKICB9IAoKfQoKCi8qCiAgU2VsZiB0ZXN0IG9mIHRoZSBWZWN0b3IgY2xhc3MuICAKKi8KCmludCBtYWluKCl7ICAKICAgIEFMTF9WZWN0b3I6OlZlY3RvciBteVZlY3RvcigxNSk7CiAgICBjb3V0IDw8ICJUaGUgc2l6ZSBvZiBWZWN0b3IgeSBpczogIiA8PCBteVZlY3Rvci5zaXplKCkgPDwgIlxuIjsgCiAgICBteVZlY3RvclswXSA9IDEyOwogICAgbXlWZWN0b3JbMl0gPSA3OwogICAgbXlWZWN0b3JbM10gPSAxOTsKICAgIG15VmVjdG9yWzRdID0gMjsKCiAgICBBTExfVmVjdG9yOjpwcmludF9wcm9kdWN0KG15VmVjdG9yKTsKCiAgcmV0dXJuIDA7Cn0=