从另一个分配矢量

时间:2013-08-10 12:44:57

标签: c++ c++11

我有一个摄氏温度的矢量。我该如何创建一个新的矢量来存储转换温度(使用静态公式转换)在华氏温度?

我认为有一种比使用循环更好的方法。

4 个答案:

答案 0 :(得分:9)

您可以使用std::transform

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

其中CToF是将温度从摄氏温度转换为华氏温度的功能

答案 1 :(得分:4)

在C ++ 11中,您可以编写lambda -

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

答案 2 :(得分:1)

您可以将std :: transform与std :: back_insert_iterator

一起使用

答案 3 :(得分:1)

大多数人提到std::transform这是非常好的,而Mahesh的答案特别好。但是,您可能还需要注意,C ++ 11 for循环实际上更短,并且在这种情况下可以说更具可读性,因为您有这样一个简单的转换:

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