【发布时间】:2012-05-13 18:35:22
【问题描述】:
我正在使用 2 个库。一个接收并返回std::strings,而另一个使用std::vector<unsigned char>s。
如果我能从std::string 和std::vector<unsigned char> 窃取底层数组并能够将它们相互移动而无需过度复制,那就太好了。
ATM 我使用类似的东西:
const unsigned char* raw_memory =
reinterpret_cast<const unsigned char*>(string_value.c_str()),
std::vector<unsigned char>(raw_memory, raw_memory + string_value.size();
反之亦然:
std::string(
reinterpret_cast<const char*>(&vector_value[0]),
vector_value.size());
如果能定义一个会更好:
std::string move_into(std::vector<unsigned char>&&);
std::vector<unsigned char> move_into(std::string&&);
【问题讨论】:
标签: c++ string vector std unsigned-char