将字符串数据附加到 std::vector<std::byte>>

Thé*_*ion 2 c++ byte std c++17

我正在实现一个 HTTP 服务器,我遵循的 API 将原始响应数据定义为std::vector<std::byte>>.

我将 http 响应标头存储std::string在我的代码中,并且在某些时候我必须将它们写入原始响应数据,然后再将其发回。

问题是,我找不到一种干净的方法来将数据从 a 写入/附加std::string到我的std::vector<std::byte>>(通过干净的方式我的意思是不循环字符串并附加每个字符)。

最好的方法是什么?

附带问题:从 a 读取字符串的最佳方法是std::vector<std::byte>>什么?

Bar*_*rry 5

只需使用远程insert重载(#4):

void extend(std::vector<std::byte>& v, std::string const& s) {
    auto bytes = reinterpret_cast<std::byte const*>(s.data());
    v.insert(v.end(), bytes, bytes + s.size());
}
Run Code Online (Sandbox Code Playgroud)

你可以读charbyte,这是一个允许的别名。