ありがとうス。
今まで教えてもらったことを元に色々と書いてみたのですが、うまく動きません。
vector<double> multi(vector<double> &v1, vector<double> &v2) {
vector<double> tmp(v1);
for (unsigned int i = 0; i < tmp.size(); ++i) {
tmp[i] *= v2[i];
}
return tmp;
}
こういう関数があったとして、返り値のvector<double>は、いつまで存在している
のでしょうか?この返り値をほかの関数の引数としてそのまま渡してしまったら駄目なのでしょうか?
multi(multi(v1,v2), v3);
たとえばこんな書き方↑です。multi()の引数を参照渡しではなく、値渡しに変更すると
正しく動くみたいなのですが、、、