Loops 用户定义堆栈与系统堆栈

Loops 用户定义堆栈与系统堆栈,loops,memory-management,recursion,stack,heap-memory,Loops,Memory Management,Recursion,Stack,Heap Memory,使用for循环时,如果使用用户定义的堆栈,那么该堆栈是否在系统堆内存中创建?和系统堆栈相比,用户定义的堆栈将花费更多的时间来填充?谢谢堆是所有不是系统堆栈的内存,所以是的。用户定义的堆栈将驻留在堆上 这要看情况而定。通常系统堆栈非常快,但我认为您希望使用用户定义的堆栈来避免破坏堆栈,这意味着我们正在处理一个运行时,该运行时添加了具有有效负载的帧,即使在没有推送(没有参数)的情况下也是如此。在这种情况下,基于数组的堆栈可能会更快,因为您在每次迭代中都会在其上推送更少的数据 基于其他数据结构的堆栈的

使用for循环时,如果使用用户定义的堆栈,那么该堆栈是否在系统堆内存中创建?和系统堆栈相比,用户定义的堆栈将花费更多的时间来填充?谢谢

堆是所有不是系统堆栈的内存,所以是的。用户定义的堆栈将驻留在堆上

这要看情况而定。通常系统堆栈非常快,但我认为您希望使用用户定义的堆栈来避免破坏堆栈,这意味着我们正在处理一个运行时,该运行时添加了具有有效负载的帧,即使在没有推送(没有参数)的情况下也是如此。在这种情况下,基于数组的堆栈可能会更快,因为您在每次迭代中都会在其上推送更少的数据

基于其他数据结构的堆栈的效率会有所不同,但最终不会像数组那样高效

我会一直使用系统堆栈,直到我确定我需要其他东西(在大多数语言中,您可以设置堆栈大小),并且最终编写的代码更少,可读性和可理解性更强

如果你需要做一个堆栈,那么先做可读性。因此,它很可能比仅仅增加系统堆栈的内存要慢

我打赌你可能知道