我有两个带有值的向量
2.123,2.111,9.222 1.22,4.33,2.113
我想要相互减去每个Vector的第一个元素,每个Vector的第二个元素,第三个元素.所以
abs(2.123-1.22) abs(2.111-4.33) abs(9.222-2.113)
我确定你必须创建一个for循环,但我不知道如何解决这个问题,因为我是C的新手.感谢大家的帮助.
以下代码是我所拥有的一般概念
std::vector<double> data1,vector<double> data2,vector<double> result; std::cout << "Enter in data#1 "; std::cin >> data1; std::cout << "Enter in data#2 "; std::cin >> data2; for (int i=0;i<data1.size();i++){ //start subtracting the values from each other and have them stored in another Vector
解决方法
如果您不知道这里所提出的标准算法,那么算法std :: transform可以使用普通的for语句编写一个等效的代码.例如
std::vector<double> a { 2.123,9.222 }; std::vector<double> b { 1.22,2.133 }; std::vector<double> c( a.size(),0.0 ); for ( std::vector<double>::size_type i = 0; i < a.size(); i++ ) { c[i] = std::abs( a[i] - b[i] ); }