把 std::vector<std::vector<float>> 转成字符串
时间: 2023-08-07 13:04:42 浏览: 212
可以使用以下代码将 `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;
}
```
将std::vector<Points> FusionCloud转化为std::string message
要将std::vector<Points> FusionCloud转化为std::string message,首先需要定义一个Points结构体或类,并确定其成员变量。然后,可以通过遍历FusionCloud中的每个Points对象,将其成员变量转换为字符串格式,并将这些字符串拼接起来形成最终的message字符串。
以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <string>
// 假设Points是一个包含x, y, z坐标的结构体
struct Points {
float x;
float y;
float z;
};
int main() {
// 创建一个Points对象的vector
std::vector<Points> FusionCloud = {{1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}, {7.0, 8.0, 9.0}};
// 将FusionCloud转化为string message
std::string message;
for (const auto& point : FusionCloud) {
message += "(" + std::to_string(point.x) + ", " + std::to_string(point.y) + ", " + std::to_string(point.z) + ") ";
}
// 输出转换后的message
std::cout << "Message: " << message << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个Points结构体,它有三个浮点数成员变量x、y和z。然后创建了一个包含三个Points对象的vector FusionCloud。通过遍历这个vector,我们将每个Points对象的成员变量转换为字符串,并将它们拼接成一个大的字符串message。最后,我们输出这个message字符串。
阅读全文