C++ 在C+中相应地乘以向量元素+;
所以我有两个向量:C++ 在C+中相应地乘以向量元素+;,c++,C++,所以我有两个向量: vector<int> v1(size); vector<int> v2(size); 然而,这将返回5 54-21,从v1[1]*v2[1]、v1[2]*v2[2]和v1[3]*v2[3]开始,我想将它们彼此相减:5-54-21首先,在您的公式中,必须添加第一个乘积(IOW为正数),然后减去剩余的乘积。所以你必须区别对待这两种情况 其次,您可以通过从零开始计算正在进行的结果来轻松执行计算: int result = 0; if (size >
vector<int> v1(size);
vector<int> v2(size);
然而,这将返回
5 54-21
,从v1[1]*v2[1]、v1[2]*v2[2]和v1[3]*v2[3]
开始,我想将它们彼此相减:5-54-21
首先,在您的公式中,必须添加第一个乘积(IOW为正数),然后减去剩余的乘积。所以你必须区别对待这两种情况
其次,您可以通过从零开始计算正在进行的结果来轻松执行计算:
int result = 0;
if (size >= 1) {
result += v1[0]*v2[0];
for (int i = 1; i < size; ++i)
result -= v1[i]*v2[i];
}
std::cout << result << std::endl;
int结果=0;
如果(大小>=1){
结果+=v1[0]*v2[0];
对于(int i=1;i std::cout首先,在您的公式中,必须添加第一个乘积(IOW为正),而减去剩余的乘积。所以你必须区别对待这两种情况
其次,您可以通过从零开始计算正在进行的结果来轻松执行计算:
int result = 0;
if (size >= 1) {
result += v1[0]*v2[0];
for (int i = 1; i < size; ++i)
result -= v1[i]*v2[i];
}
std::cout << result << std::endl;
int结果=0;
如果(大小>=1){
结果+=v1[0]*v2[0];
对于(int i=1;i std::cout首先,在您的公式中,必须添加第一个乘积(IOW为正),而减去剩余的乘积。所以你必须区别对待这两种情况
其次,您可以通过从零开始计算正在进行的结果来轻松执行计算:
int result = 0;
if (size >= 1) {
result += v1[0]*v2[0];
for (int i = 1; i < size; ++i)
result -= v1[i]*v2[i];
}
std::cout << result << std::endl;
int结果=0;
如果(大小>=1){
结果+=v1[0]*v2[0];
对于(int i=1;i std::cout首先,在您的公式中,必须添加第一个乘积(IOW为正),而减去剩余的乘积。所以你必须区别对待这两种情况
其次,您可以通过从零开始计算正在进行的结果来轻松执行计算:
int result = 0;
if (size >= 1) {
result += v1[0]*v2[0];
for (int i = 1; i < size; ++i)
result -= v1[i]*v2[i];
}
std::cout << result << std::endl;
int结果=0;
如果(大小>=1){
结果+=v1[0]*v2[0];
对于(int i=1;i
vector<int> v1{2,5,9,3};
vector<int> v2{4,1,6,7};
int result = std::inner_product(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::minus<>,std::multiplies<>);
向量v1{2,5,9,3};
向量v2{4,1,6,7};
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++14)
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++98)那怎么办
vector<int> v1{2,5,9,3};
vector<int> v2{4,1,6,7};
int result = std::inner_product(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::minus<>,std::multiplies<>);
向量v1{2,5,9,3};
向量v2{4,1,6,7};
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++14)
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++98)那怎么办
vector<int> v1{2,5,9,3};
vector<int> v2{4,1,6,7};
int result = std::inner_product(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::minus<>,std::multiplies<>);
向量v1{2,5,9,3};
向量v2{4,1,6,7};
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++14)
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++98)那怎么办
vector<int> v1{2,5,9,3};
vector<int> v2{4,1,6,7};
int result = std::inner_product(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::minus<>,std::multiplies<>);
向量v1{2,5,9,3};
向量v2{4,1,6,7};
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++14)
int result=std::inner_乘积(++v1.beginn(),v1.end(),++v2.begin(),v1[0]*v2[0],std::减号,std::乘法);
(使用C++98)打印-
而不是空格?@saadtaame,这将生成一个字符串5-54-21-
代码>,向量v2{4,1,6,7}代码>和for(auto p:product)我以前可以试过吗,但我最终得到了这样一个结果:在C++98中'v1'必须由构造函数初始化,而不是由{…}
初始化仍然在98上,是的..打印-
而不是空格?@saadtame,这将产生一个字符串5-54-21-
代码>,向量v2{4,1,6,7}代码>和for(auto p:product)我以前可以试过吗,但我最终得到了这样一个结果:在C++98中'v1'必须由构造函数初始化,而不是由{…}
初始化仍然在98上,是的..打印-
而不是空格?@saadtame,这将产生一个字符串5-54-21-
代码>,向量v2{4,1,6,7}代码>和for(auto p:product)我以前可以试过吗,但我最终得到了这样一个结果:在C++98中'v1'必须由构造函数初始化,而不是由{…}
初始化仍然在98上,是的..打印-
而不是空格?@saadtame,这将产生一个字符串5-54-21-
代码>,向量v2{4,1,6,7}代码>和for(auto p:product)我以前可以试试吗,但我最终得到了这样一个结论:在C++98中,“v1”必须由构造函数初始化,而不是由“{…}”|
仍然在98上,是的..我完全错过了这一点。将尽快接受,谢谢你的时间:)我完全错过了。将尽快接受,谢谢你的时间:)我完全错过了。将尽快接受,谢谢你的时间:)我完全错过了。将尽快接受,谢谢您的时间:)