Qt是否有span
的实施? C ++核心指南建议在指定指针类型的非拥有元素序列时使用gsl::span
来包装指针和长度。
对于QChar
的只读案例,有QStringView
。 Qt中的字节是否存在QStringView
的模拟?这些可写类似物呢?
答案 0 :(得分:1)
你可以使用QByteArray。您只需要在现有QByteArray或QByteArray::setRawData
上使用QByteArray::fromRawData
构建它,就可以创建一个新的,如下所示:
std::vector<char> myvec{'t','e','s','t'};
QByteArray slice = QByteArray::fromRawData((const char*)myvec.data(),myvec.size());
这不会复制数据,并且在销毁QByteArray时不会销毁它。
但请注意,这是写时复制,因此无法通过QByteArray修改原始序列。