Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这个循环要花这么长时间?_C++ - Fatal编程技术网

C++ 为什么这个循环要花这么长时间?

C++ 为什么这个循环要花这么长时间?,c++,C++,for循环: //for testing, this is usually a value of about 27 int test = level.PathLookupVectors()[globalNodePositionIndex][globalNodeChoice].size(); for (int i = 0; i < level.PathLookupVectors()[globalNodePositionIndex][globalNodeChoice].size(); i++

for循环:

//for testing, this is usually a value of about 27
int test = level.PathLookupVectors()[globalNodePositionIndex][globalNodeChoice].size();

for (int i = 0; i < level.PathLookupVectors()[globalNodePositionIndex][globalNodeChoice].size(); i++)
{
    //adds the correct nodes to the search
    search.push_back(level.Nodes()[level.PathLookupVectors()[globalNodePositionIndex][globalNodeChoice][i]].Index());
}
//对于测试,该值通常为27左右
int test=level.PathLookupVectors()[globalNodePositionIndex][GlobalNodeEchoice].size();
对于(int i=0;i
这是一个64位系统

调试时,整数“I”的结果非常奇怪。它应该初始化为0,但由于某种原因,它是一个非常高的数字,这反过来意味着for循环没有执行

编辑-只是将其更改为一个int,现在它得到一个值 -82938723047或一些这样的数字。这究竟是为什么? 它毁了我的节目

你几乎肯定找错人了。守则:

for (int i = 0; 
…将
i
初始化为
0
,句点。如果您试图在调试器中发现它的值,而调试器说
i
有一个看起来像未初始化的垃圾数据的值,那么您可能正在查看
i
进入范围并被初始化之前或之后的
i
。例如,在MSVC中,如果在第一次进入循环之前检查
i
,它通常会有垃圾数据

这些不是你要找的机器人。往前走

更可能的是以下代码:

level.PathLookupVectors()[globalNodePositionIndex][globalNodeChoice].size()
这可能不是在做你认为它在做的事情

顺便说一句,如果
level.PathLookupVectors()[globalNodePositionIndex][globalNodeEchoice]
的类型是某种
向量
,我希望您对这样构造的
循环使用

/*psudocode*/ for( vector::iterator it = v.begin(), it_end = v.end(); it != it_end; ++it )

如果您不需要尝试访问的元素的索引,那么为什么要引用它呢?您只是在代码中引入了另一个潜在的失败点。

不要向我们展示循环“本质上”是什么——而是向我们展示实际的代码。实际上,它是一个
vector::size\u类型。
。请注意,显示实际的代码可能包含太多的无关信息。我们需要的是一个完整、简洁的示例来重现问题。您更新的代码仍然没有显示问题。为什么
测试
相关?为什么你觉得
i
不好?@SirYakalot:你不能多次接近投票。我们无能为力。正如你所展示的,这个循环不是有缺陷的w.r.t.
i
问题。我有兴趣帮忙,但我不能;这是不可能的。所以你必须帮助我们,这样我们才能更好地帮助你。