我试过环顾四周,但在任何地方都找不到任何相关信息。
我正在编写一个带有“推送”功能的自定义数组类,以向数组添加一个值。 它似乎工作得很好,但不会执行多次。
以下面的main方法为例:
int main()
{
Array<int> test(4,5);
test.push(4);
test.writeOrdered("Output.txt");
return 0;
}
这会将 int 值 4 放入数组中第一个可用位置并执行 writeOrdered 函数。
另一方面,以下主要方法:
int main()
{
Array<int> test(4,5);
test.push(4);
test.push(5);
test.writeOrdered("Output.txt");
return 0;
}
这会将数字 4 放入数组中的第一个可用点,如上,然后停止。它不会再执行任何代码行。
下面是push
函数供引用:
void push(Datatype p_item)
{
bool inserted = false;
int i = 0;
while (inserted == false)
{
if (m_array[i] < 0)
{
m_array[i] = p_item;
i++;
inserted = true;
cout << p_item << " saved to array" << endl;
system("pause");
}
}
}
最佳答案
你有一个无限循环。在第一次插入 m_array[0] >= 0
之后,i
永远不会增长。如果您以某种方式调试代码,您就会发现它。
关于C++ 函数不会执行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22201977/