首页 > 解决方案 > 如果它后面没有一行,为什么排序不给我正确的值?

问题描述

当 sort 后面没有一行时,结果不正确。我在排序线上放了一个断点,然后跨步直到排序线运行,并检查myvector. 在此处输入图像描述

但是当它后面有一行时,即使该行与 myvector 变量无关,我也会得到正确的值。在这里,我可以在排序之后放置断点,所以我需要跨过任何东西。这里发生了什么? 在此处输入图像描述

标签: c++sorting

解决方案


这听起来像是 IDE 和调试器的一个弱点。

如果您“踩到”那个右括号,那么您就是在观察事物被销毁后的值,即什么也没有。

当您进入代码中存在的实际语句时,一切都还活着,因此您的调试器可以正常工作。

理想情况下,您的 IDE 不允许这样做,或者至少会清楚这一点。我隐约记得以前在这里看到过这个问题。

实际上,你总是在用这个向量“做某事”(例如返回它;否则为什么要创建和排序它?)所以你总是有一个有意义的声明可以在你的sort调用之后中断。


推荐阅读