2013-08-10 3 views
0

У меня есть вектор с температурой в градусах Цельсия. Как создать новый вектор, который будет хранить преобразованные температуры (преобразованные с использованием статической формулы) в Fahrenheit?Назначение вектора с другого

Я думаю, что было бы лучше, чем использовать цикл.

+2

использование [преобразование] (HTTP://en.cppreference.com/w/cpp/algorithm/transform) – billz

ответ

4

В C + +11, вы можете написать лямбда -

std::transform(celVector.begin(), 
       celVector.end(), 
       std::back_inserter(fahVector), 
       [](double c) -> double { return c * 1.8 + 32; }); 
9

Вы можете использовать std::transform

std::transform(inputVector.begin(), inputVector.end(), std::back_inserter(outputVectot), CToF) 

где CToF является функцией, которая преобразует температуру из градусов Цельсия в градусы Фаренгейта

1

Вы можете использовать зЬй :: преобразование с стандом :: back_insert_iterator

1

Большинство людей упоминает std::transform, что отлично, и ответ Махеша в частности замечательный. Тем не менее, вы также можете заметить, что C++ 11 для петли на самом деле короче, и, возможно, более удобным для чтения в этом случае, так как у вас есть такой простой трансформации:

for (auto c : celVector) fahVector.push_back(c * 1.8 + 32);

Смежные вопросы