Так у меня есть два вектора:Умножить элементы вектора соответственно в C++
vector<int> v1(size);
vector<int> v2(size);
и то, что я хочу, чтобы вычислить A[0]*B[0] - A[1]*B[1] - A[2]*B[2] - ... - A[n-1]*B[n-1]
. Я пробовал следующий
#include <iostream>
#include <vector>
using namespace std;
int main()
{
size_t size = 4;
vector<int> product; int i;
vector<int> v1(size);
vector<int> v2(size);
v1[0] = 2; v2[0] = 4;
v1[1] = 5; v2[1] = 1;
v1[2] = 9; v2[2] = 6;
v1[3] = 3; v2[3] = 7;
for(i=1;i < v1.size();++i){
product.push_back(v1[i]*v2[i]);
}
for(vector<int>::const_iterator i = product.begin(); i != product.end(); ++i)
std::cout << *i << ' ';
return 0;
}
Однако это вернуть 5 54 21
от v1[1]*v2[1], v1[2]*v2[2] and v1[3]*v2[3]
и я хочу, чтобы вычесть их друг от друга: 5-54-21
.
print '- 'вместо пространства? – saadtaame
@saadtaame, который создаст строку '5-54-21-'. – schmitsz
В эти дни вы можете сэкономить несколько символов с помощью 'vector v1 {2,5,9,3};', 'vector v2 {4,1,6,7};' и 'for (auto p: product) cout << p << ''; ' –
Michael