从另一个矢量指定一个矢量

Assign a vector from another

本文关键字:一个 另一个      更新时间:2023-10-16

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

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

您可以使用std::transform

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

其中CToF是将温度从摄氏度转换为华氏度的函数

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

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

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

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

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

相关文章: