我有一个摄氏温度的矢量。我该如何创建一个新的矢量来存储转换温度(使用静态公式转换)在华氏温度?
我认为有一种比使用循环更好的方法。
答案 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);