【发布时间】:2014-09-18 01:35:18
【问题描述】:
QVarLengthArray 的内部数据结构是什么?
例如,如果我在哪里拥有:
QVarLengthArray<QString> anArray;
QString string1 = "whatever";
QString string2 = "something else";
anArray[0] = string1;
anArray[1] = string2;
在给定 &anArray 的情况下预先计算 &anArray[1] 容易吗?
我一直在浏览 QVarLengthArray 源代码,试图了解 QVarLengthArray 如何在内存中存储 QString 数组。尽管我很喜欢 Qt,但对我来说特别痛苦的一件事是它不透明的指针基础。 (调试器中的辅助函数在某些情况下会有所帮助,但当真正尝试深入研究内部时,不透明的指针会掩盖大量原本在调试器中可用的信息。)
我在 codeproject.com 和其他地方找到了几篇“Qt Internals”文章,但没有任何帮助。
一般来说,有一种方法可以窥探不透明指针背后的真实数据结构,但对于即时需要,了解是否有一种很好的方法来预测每个指针的起始地址会很好MyClass 的 QVarLengthArray 中的元素,其中包含指针、QStrings 和整数。
(拥有这些信息将有助于简化自定义序列化。我确实了解可重用性的风险,并且愿意为这个实验接受这些风险。)
【问题讨论】:
-
那么你的问题是什么...?
-
主要问题是 QVarLengthArray
的内部数据结构是什么,其中 MyClass 包含 QStrings。 -
如果知道如何在调试器中查看 Qt 的不透明指针背后的真实数据结构(在我的例子中是 Creator 中的 gdb),那也很棒。
-
我明白你的意思。我将编辑原始帖子以使问题更清楚。谢谢。
-
好的,我对原始问题进行了编辑,我相信这会使问题更加清晰。