C++ C++;:重新解压缩数据

C++ C++;:重新解压缩数据,c++,C++,我正在使用此函数打包字符串: std::vector<char> pack(const std::string& str) { const uint32_t sz = str.size(); const uint32_t n_sz = htonl(sz); std::vector<char> result(sizeof(sz) + sz); memcpy(result.data(), &n_sz, sizeof(n_sz))

我正在使用此函数打包字符串:

std::vector<char> pack(const std::string& str) {
    const uint32_t sz = str.size();
    const uint32_t n_sz = htonl(sz);
    std::vector<char> result(sizeof(sz) + sz);
    memcpy(result.data(), &n_sz, sizeof(n_sz));
    memcpy(result.data() + sizeof(sz), str.data(), sz);
    return result;
}

因为我知道函数包使用big-endian。但这并不奏效。有人能告诉我如何再次打开包装吗???

嗯,这很有意义,很有效,谢谢你和所有帮助我的人!
uint32_t n_sz;
memcpy(&n_sz, ourbuffer.data(), sizeof n_sz);
const uint32_t sz = ntohl(n_sz);
std::string str(ourbuffer.data() + sizeof n_sz, sz);
uint32_t n_sz;
memcpy(&n_sz, ourbuffer.data(), sizeof n_sz);
const uint32_t sz = ntohl(n_sz);
std::string str(ourbuffer.data() + sizeof n_sz, sz);