lambda list<string>转list<float>
时间: 2023-12-05 13:04:07 浏览: 98
可以使用C++中的STL算法和lambda表达式来实现将一个存储字符串的列表转换为存储浮点数的列表。
示例代码如下:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> strList = {"1.5", "2.0", "3.14159", "4.2"};
std::vector<float> floatList;
std::transform(strList.begin(), strList.end(), std::back_inserter(floatList), [](const std::string& str) {
return std::stof(str);
});
for (float f : floatList) {
std::cout << f << std::endl;
}
return 0;
}
```
在上述代码中,我们使用了 `std::transform` STL算法,它将一个列表中的每个元素应用于一个转换函数,并将结果存储在另一个列表中。在这里,我们使用 lambda 表达式作为转换函数,将每个字符串转换为浮点数。
最后,我们遍历新的浮点数列表,并将每个元素输出到标准输出。
相关问题
用java lamda方式 list<string>转list<float>
假设你有一个 `List<String>` 类型的列表 `stringList`,你可以使用 Java 8 中的 Lambda 表达式和 Stream API 将其转换为 `List<Float>` 类型的列表 `floatList`,代码如下:
```java
List<String> stringList = Arrays.asList("1.2", "3.4", "5.6");
List<Float> floatList = stringList.stream()
.map(Float::parseFloat)
.collect(Collectors.toList());
```
上面的代码首先将 `stringList` 转换为一个 Stream,然后使用 `map()` 方法将每个字符串转换为相应的浮点数,最后使用 `collect()` 方法将结果转换为一个 `List<Float>` 类型的列表 `floatList`。在 `map()` 方法中,我们使用 `Float::parseFloat` 方法引用来将字符串转换为浮点数。
用java lamda方式 list<string>转list<float> 并保留五位小数
假设原始的List<String>为stringList,可以使用Java 8的Lambda表达式和Stream API来实现该功能,代码如下:
```
List<Float> floatList = stringList.stream()
.map(Float::parseFloat)
.map(f -> (float)(Math.round(f * 100000) / 100000.0))
.collect(Collectors.toList());
```
上述代码中,首先使用stream()方法将stringList转换为Stream<String>类型,然后使用map()方法将每个String元素转换为对应的Float类型。接着使用第二个map()方法将每个Float类型的元素保留五位小数,最后使用collect()方法将结果收集到List<Float>类型的floatList中。
其中,第二个map()方法使用了Lambda表达式和Math.round()方法来实现保留五位小数的功能。具体来说,将每个Float类型元素乘以100000,将结果四舍五入取整,再除以100000.0,即可得到保留五位小数的结果。