#include <iostream>
#include <vector>
using namespace std;
template <typename ELEM>
ostream& operator << (ostream &out, const vector<ELEM> &vec)
{
const char *sep = "{ ";
for (const ELEM &elem : vec) { out << sep << elem; sep = ", "; }
return out << " }";
}
int main()
{
vector<double> v1{ 1.0, 2.0, 3.0 }, v2{ 4.0, 5.0, 6.0 };
// in one line:
vector<decltype(v1.front() * v2.front())> v3 { v1[0] * v2[0], v1[0] * v2[1], v1[0] * v2[2], v1[1] * v2[0], v1[1] * v2[1], v1[1] * v2[2], v1[2] * v2[0], v1[2] * v2[1], v1[2] * v2[2] };
// output:
cout << v3 << endl;
// done
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIEVMRU0+Cm9zdHJlYW0mIG9wZXJhdG9yIDw8IChvc3RyZWFtICZvdXQsIGNvbnN0IHZlY3RvcjxFTEVNPiAmdmVjKQp7CiAgY29uc3QgY2hhciAqc2VwID0gInsgIjsKICBmb3IgKGNvbnN0IEVMRU0gJmVsZW0gOiB2ZWMpIHsgb3V0IDw8IHNlcCA8PCBlbGVtOyBzZXAgPSAiLCAiOyB9CiAgcmV0dXJuIG91dCA8PCAiIH0iOwp9CgppbnQgbWFpbigpCnsKICB2ZWN0b3I8ZG91YmxlPiB2MXsgMS4wLCAyLjAsIDMuMCB9LCB2MnsgNC4wLCA1LjAsIDYuMCB9OwogIC8vIGluIG9uZSBsaW5lOgogIHZlY3RvcjxkZWNsdHlwZSh2MS5mcm9udCgpICogdjIuZnJvbnQoKSk+IHYzIHsgdjFbMF0gKiB2MlswXSwgdjFbMF0gKiB2MlsxXSwgdjFbMF0gKiB2MlsyXSwgdjFbMV0gKiB2MlswXSwgdjFbMV0gKiB2MlsxXSwgdjFbMV0gKiB2MlsyXSwgdjFbMl0gKiB2MlswXSwgdjFbMl0gKiB2MlsxXSwgdjFbMl0gKiB2MlsyXSB9OwogIC8vIG91dHB1dDoKICBjb3V0IDw8IHYzIDw8IGVuZGw7CiAgLy8gZG9uZQogIHJldHVybiAwOwp9