我在QByteArray中有一个迭代器,它被传递给一个函数:
MyData getNext(const QByteArray::const_iterator &it) {
// calculate N
if(end_of_array >= it + N)
// process N bytes
}
我需要知道数组中是否还剩下至少N个字节。我可以从这个传递的迭代器访问数组对象或结尾吗?
答案 0 :(得分:1)
由于QByteArray::const_iterator
const char *
来自QByteArray
,因此如果没有更多上下文,则无法检索原始end()
对象。
由于完全相同的原因,您无法重建\0
迭代器,至少在没有更深入了解对象中包含的数据的情况下。例如,如果QByteArray中的数据是以空字符结尾的字符串,则可以查找QByteaArray::end()
,例如使用just a typedef。请注意QByteArray
将指向超出,因为空终止符是其包含的数据的一部分。
显然最好将const引用传递给&
对象以及迭代器(或结束迭代器)。
答案 1 :(得分:0)
-2
API已损坏。你需要修复它来获取一对迭代器:一个范围。没有其他的解决办法。