如果我们使用用户定义的堆栈,那么在使用for循环时,是否会在系统堆内存中创建该堆栈?与系统堆栈相比,用户定义的堆栈需要更多的时间来填充?感谢
答案 0 :(得分:1)
堆是所有非系统堆栈的内存,所以是的。用户定义的堆栈将驻留在堆上。
一切都取决于。通常系统堆栈速度非常快,但我想你想使用一个用户定义的堆栈来打击堆栈,这意味着我们正在处理运行时添加它的框架,即使没有任何东西被推送也没有任何参数(没有参数) )。在这种情况下,基于数组的堆栈可能会更快,因为您在每次迭代时都会在其上推送较少的数据。
基于其他数据结构的堆栈会因效率而异,但最终永远不会像数组一样高效。
我会使用系统堆栈,直到我确定我需要其他东西(在大多数语言中,您可以设置堆栈大小),并且最终编写的代码更易于阅读和理解。
如果您需要进行堆叠,请先进行可读性处理。因此,它很可能变得比增加系统堆栈的内存慢。
我打赌你可能知道3 rules of optimization