【发布时间】:2025-02-28 04:15:03
【问题描述】:
我有点难过,我以为是一些简单的代码。它以前可以工作,所以我不确定它为什么停止工作。这是一个单线程程序。
Model *model;
ModelMap::iterator model_map_iterator;
cout << this->models.size() << endl;
for( model_map_iterator = this->models.begin(); model_map_iterator != this->models.end(); model_map_iterator++ ){
cout << "what" << endl;
//model = model_map_iterator->second;
//cout << *model;
}
cout << this->models.size() << endl;
这是分别有 1、2 和 4 个模型时的输出。
$ program
1
what
1
$ program
2
what
what
2
$ program
4
what
what
4
如您所见,对于任何数量大于 2 的模型,“what”输出的数量为 2。我已经尝试过 2-5 个模型。它们都产生两个“what”字符串,但输出正确大小的 std::map。
谁能帮我找出我做错了什么?
提前谢谢...
更新:
提交整个代码库进行调试:
https://github.com/homer6/modeler/tree/crudepythonmodeler
提交 (00c01ad634df70cc7f67efba96b1503ffd63529c)
这是粗略的pythonmodeler 分支
README.md 包含 ubuntu 的安装步骤
【问题讨论】:
-
我怀疑这是有问题的代码。
-
我已经检查过很多次了。当我更改代码时,输出会发生变化。这肯定是有问题的代码。
-
如果不是很大,你能把整个东西贴出来吗?
-
更改此代码时输出发生变化并不意味着此代码有问题。
-
几乎可以肯定该错误存在于您尚未粘贴的代码中。您可以从
valgrind开始测试。