C++ std::vector<cv::Vec6f>经过序列化后,通过QTsokect发送出去
时间: 2023-08-16 11:08:19 浏览: 75
关于C++vector
你可以使用Qt的QDataStream类来进行序列化和发送首先,将std::<cv::Vec6f转换为QByteArray,然后使用QTsocket发送出去。
下面是一个示例代码:
cpp
#include <QDataStream>
#include <QTcpSocket>
// 将std::vector<cv::Vec6>序列化为QByteArray
QByteArray serializeVector(const std::vector<cv::Vec6f>& data)
{
QByteArray byteArray;
QDataStream stream(&byteArray, QIODevice::WriteOnly);
stream << data.size(); // 写入向量的大小
for (const auto& element : data) {
for (int i = 0; i < 6; ++i) {
stream << element[i]; // 写入每个元素的值
}
}
return byteArray;
}
// 使用QTcpSocket发送QByteArray
void sendSerializedData(const QByteArray& data)
{
QTcpSocket socket;
socket.connectToHost("your_host", your_port); // 设置目标主机和端口
if (socket.waitForConnected()) {
socket.write(data);
socket.waitForBytesWritten();
socket.disconnectFromHost();
}
}
// 在你的代码中调用上述函数
std::vector<cv::Vec6f> yourData; // 假设你有一个std::vector<cv::Vec6f>
QByteArray serializedData = serializeVector(yourData);
sendSerializedData(serializedData);
```
请注意,你需要将"your_host"和your_port"替换为实际的目标主机和端口。此外,你还需要确保在发送数据之前,QTcpSocket已经成功连接到目标主机。
希望这可以帮助到你!如有更多问题,请随时提问。
阅读全文