Эта строка не работает, поскольку v3[i]
не выделено:
v3[i] = v1[i] + v2[i];
У вас есть два варианта: либо использовать push_back
v3.push_back( v1[i] + v2[i] );
, либо изменить размер массивадо заданного размера перед рукой:
v3.resize( v1.size() );
Если вы нажмете_бэк, было бы неплохо предварительно выделить место в любом случае:
v3.reserve( v1.size() );
И, наконец, вы можете попробовать прочитать std::valarray
вместо этого, поскольку эти операции уже встроены в него!
Редактировать: и да, как отметил Йоханнес, у вас есть проблема с делением с плавающей запятой:>