繁体   English   中英

lua_rotate是做什么的?

[英]what does lua_rotate do?

Lua5.3引入了新的c api lua_rotate: https ://www.lua.org/manual/5.3/manual.html#lua_rotate

在有效索引idx和堆栈顶部之间旋转堆栈元素。 元素在顶部方向上旋转n个位置 (正数为n),或在底部方向上旋转 -n位置,负数为n。 n的绝对值不得大于要旋转的切片的大小。

无法理解lua_rotate的工作原理,尤其是在粗体字上方,需要帮助!

堆栈基本上是一个数组,按定义良好的顺序线性排列的元素。 假设我们有一个字符数组,如下所示(从1开始的索引位于元素上方):

1 2 3 4 5 6 
A Q Z G N K

“旋转”是计算机科学中对元素序列的一种常见操作,非常类似于“移位”或“排序”等(这就是Lua手册不必费心去详细说明“旋转”的含义的原因。元件)。 将此数组向左或向右旋转某个数字N意味着将所有元素向左/向右移动N元素,并将从数组末尾移出的元素按顺序放在新的空部分中。

因此,如果我们将上述数组右旋转2倍,则会得到以下结果:

1 2 3 4 5 6
N K A Q Z G

原来的元素1-4变为元素3-6,而原来的元素5-6在新版本中变为1-2。 左旋转类似。

旋转阵列的一部分仅意味着执行此操作,而剩下阵列的其他部分。 因此,如果采用上面的原始数组,并向左旋转3个元素,但仅影响3-6个元素,则会得到以下结果:

1 2 3 4 5 6
A Q K Z G N

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM