考虑以下代码:
#include <deque>
int main() {
std::deque<int> a;
for (int i = 0; i < 300; i++) {
a.push_back(i);
}
// Breakpoint in IDE
// a contains only 255 elements ( [0] - [254] )
return 0;
}
您希望a在断点处包含300个元素(数字0到299),但是不会。在第255个元素之后,不添加任何元素,将忽略它们。为什么会这样,我该如何解决。
我将XCode用作我的IDE,我不知道XCode使用哪个编译器,但我可能已将其设置为默认编译器。
我试图用Google搜索它,因为这似乎是一个相当简单的问题,但找不到任何东西。希望这里有人可以帮助我,我将非常感激。
编辑: 这是由于Xcode在GUI中未显示超过255个元素所致,尚未找到解决方案,但是您可以使用lldb来显示所有这些元素。参见this。
答案 0 :(得分:4)
双端队列将包含所有300个元素。它不会忽略第255个 之后的元素。
调试器可能只显示最大限制,因为在那之后GUI会变得笨拙。
您可以重新配置调试器,或以其他方式调试代码(例如,通过打印容器的属性,例如a.size()
)。