std::vector<float> a {-0.2, 2.0, -0.9, 2.4, 22.0}
Как принять абсолютное значение всех элементов вектора?Как вычислить абсолютное значение вектора?
std::vector<float> a {-0.2, 2.0, -0.9, 2.4, 22.0}
Как принять абсолютное значение всех элементов вектора?Как вычислить абсолютное значение вектора?
этот код поможет вам, цикл вектора и применять 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;
}
или с диапазоном C++ 11: 'for (auto & f: numbers) {f = f <0? -f: f;} ' – Jarod42
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);
Мои математические классы некогда назад , но shoudn't это будет | a | = sqrt (sum (abs (ai) * abs (aj))). В противном случае вы можете столкнуться с исключением, когда принимается sqrt отрицательного значения. (Плюс результат может быть неправильным) –
Кажется, что это не то, что хочет OP. Вы вычисляете расстояние, тогда как OP хочет изменить свой вектор, чтобы иметь положительный поплавок. – Jarod42
'ai * ai' =' abs (ai) * abs (ai) ', не так ли? –
Вы создаете функцию, которая принимает в качестве входного вектора и возвращает другой вектор:
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 (ИМХО приятно)
Вы можете использовать следующий код.
#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;
}
Это закончится бесконечным циклом, если на первом значении> = 0. Также не так, как вы находите абсолютное значение вектора. – PaulF
исправлено. Спасибо, что указали. – DhruvJoshi
Ваш адрес печати функции вы не называете. – Jarod42
Петли по всем элементам, называют 'abs' на них? – anderas
Попробуйте использовать google: вверху списка - http://math.stackexchange.com/questions/707945/how-to-find-the-absolute-value-of-a-vector – PaulF