多年来,我一直在摸不着头脑,试图弄清楚为什么我的 2d 向量看起来像是以错误的顺序存储东西,并且条目数量是应有的两倍。我正在使用代码块中的“watches”窗口在调试模式下观看它们。
当我刚刚将所有数据输出到终端时,它实际上是正确的顺序。
为什么它在手表窗口中显示如此错误?它与它的实际存储方式有关吗?
编辑:
这是我的手表窗口的图像,显示了 2d 矢量。它大部分是空的,但我刚刚注意到它在顶部显示长度 = 12,容量 = 12。所以它清楚地知道它实际上并没有那么长。向量的构造方式,0 到 999 之间的整数应该在元素 0 中,1000 到 1999 之间的整数在元素 1 中,2000 到 2999 之间的整数在元素 2 中,依此类推,直到元素 11 中 11000 到 11999 之间的整数。所以int 6019 绝对不应该在元素 1 中!如果我到终端,那不是。