0

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

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

4

4 回答 4

9

您可以使用std::transform

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

CToF将温度从摄氏度转换为华氏度的函数在哪里

于 2013-08-10T12:47:18.160 回答
4

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

std::transform(celVector.begin(),
               celVector.end(),
               std::back_inserter(fahVector),
               [](double c) -> double { return c * 1.8 + 32; });
于 2013-08-10T12:59:31.803 回答
1

您可以将 std::transform 与 std::back_insert_iterator 一起使用

于 2013-08-10T12:52:53.667 回答
1

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

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

于 2013-08-10T14:36:04.817 回答