我有一些std::vector<uint8_t>
类型的数据。我想将其解释为字符串,并对其进行一些子字符串检查。
可以通过将其转换为std::string
来完成,这将导致复制数据。是否可以通过某种方式将其转换为std::string_view
并对其进行搜索以避免复制。
答案 0 :(得分:3)
假设char
是系统上的8位(大多数系统是),则只需将reinterpret_cast
的数据vector
到char*
并从中查看例如:
std::vector<uint8_t> data;
...
std::string_view sv(reinterpret_cast<char*>(data.data()), data.size());
或者,在C ++ 20中,您可以改为使用迭代器:
std::vector<uint8_t> data;
...
std::string_view(data.begin(), data.end());