Qt是否有gsl :: span的模拟?

时间:2018-02-20 15:14:44

标签: c++ qt

Qt是否有span的实施? C ++核心指南建议在指定指针类型的非拥有元素序列时使用gsl::span来包装指针和长度。

对于QChar的只读案例,有QStringView。 Qt中的字节是否存在QStringView的模拟?这些可写类似物呢?

1 个答案:

答案 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修改原始序列。