把 std::vector<std::vector<float>> 转成字符串
时间: 2023-08-07 16:04:42 浏览: 51
可以使用以下代码将 `std::vector<std::vector<float>>` 转换成字符串:
```c++
#include <vector>
#include <sstream>
std::string vectorToString(const std::vector<std::vector<float>>& vec) {
std::ostringstream oss;
for (const auto& innerVec : vec) {
for (const auto& val : innerVec) {
oss << val << " ";
}
oss << "\n";
}
return oss.str();
}
```
这个函数会将每个内部的 `std::vector<float>` 转换成一行,每个值之间用空格分隔,每行末尾加上一个换行符。
相关问题
std::vector<std::string> 转浮点
std::vector<std::string>是一个存储字符串的动态数组,可以动态地增加或减少其中的元素。如果你想要将这个字符串数组中的每个字符串转换为浮点数,可以使用std::stof函数来完成。该函数可以将一个字符串转换为浮点数,并返回转换后的结果。你需要遍历该vector中的每个字符串,并将其作为std::stof函数的参数,然后将转换后的浮点数存储到另一个std::vector<float>中。
示例代码如下:
```
#include <vector>
#include <string>
std::vector<float> strVecToFloatVec(const std::vector<std::string>& strVec)
{
std::vector<float> floatVec;
for (const auto& str : strVec)
{
floatVec.push_back(std::stof(str));
}
return floatVec;
}
```
lambda list<string>转list<float>
可以使用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 表达式作为转换函数,将每个字符串转换为浮点数。
最后,我们遍历新的浮点数列表,并将每个元素输出到标准输出。