簡體   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