如何计算向量的绝对值?

时间:2015-08-10 08:46:39

标签: c++ vector

 std::vector<float> a {-0.2, 2.0, -0.9, 2.4, 22.0}

如何获取所有向量元素的绝对值?

4 个答案:

答案 0 :(得分:6)

此代码将帮助您,循环向量并应用abs(函数以查找绝对值)

   for(unsigned int i = 0; i < numbers.size(); i++)
    {
        if(numbers[i] < 0)numbers[i] *= -1; //make positive.    _OR_   use numbers[i] = abs(numbers[i]);
        std::cout<<numbers[i]<<std::endl;
    }

答案 1 :(得分:4)

Use the formula |a| = sqrt(sum(ai*ai))

float value = 0.0;
for(int i = 0; i < a.size(); i++) value += a[i] * a[i];
value = sqrt(value);

答案 2 :(得分:3)

您可以使用以下代码。

#include <iostream>
#include <string>
#include <cstring>
#include <vector>

using namespace std;

void v_abs( vector <int>  &x, double p[]) 
{ 
    int i=0; 


    while( p[i] < x.size () ) 
    { 
        if ( p[i] < 0 )
        { 
            p[i] *= -1 ; 
         } 
             i ++; 
    }
}

int main() {
    cout << v_abs << endl;
    system("pause");
    return 0;
}

答案 3 :(得分:1)

您创建一个函数,接收向量作为输入并返回另一个向量:

const std::vector< float >& absValues(std::vector< float >& vecIn)
{
   for(float &val : vecIn)
   {
      if (val < 0)
      {
          val *= -1;
      }
   }

   return vecIn;
}

如果你想要向量的所有元素之和的sqrt,那么你应该这样做as John Bupit said(恕我直言很好)