如何将std :: vector <uint8_t>转换成QByteArray?

goG*_*Gud 7 c++ qt vector qbytearray

我试图从std :: vector创建QByteArray.我试过;

std::vector<uint8_t> buf;
QByteArray img = new QByteArray(reinterpret_cast<const char>(buf), buf.size());
Run Code Online (Sandbox Code Playgroud)

但是它给出了错误;

error: invalid cast from type 'std::vector<unsigned char, std::allocator<unsigned char> >' to type 'const char'
Run Code Online (Sandbox Code Playgroud)

m.s*_*.s. 14

你需要施放buf.data()而不是buf:

QByteArray* img = new QByteArray(reinterpret_cast<const char*>(buf.data()), buf.size());
Run Code Online (Sandbox Code Playgroud)

  • 注意`.data()`仅在C++ 11及更高版本中可用.如果编译器不支持,请使用`&buf [0]`. (4认同)