我知道的: http://lua-users.org/wiki/SimpleLuaApiExample的Lua表C API
它顯示了我如何建立一個表(鍵,值)的條目對條目。我想要建立一個巨大的表(例如1000條目表,其中兩個鍵&的值都是字符串),在lua中有沒有這樣做的快速方法(而不是每個條目4個func調用:
push
key
value
rawset
我知道的: http://lua-users.org/wiki/SimpleLuaApiExample的Lua表C API
它顯示了我如何建立一個表(鍵,值)的條目對條目。我想要建立一個巨大的表(例如1000條目表,其中兩個鍵&的值都是字符串),在lua中有沒有這樣做的快速方法(而不是每個條目4個func調用:
push
key
value
rawset
你寫的東西是解決這個問題的快速方法。 Lua桌子的設計非常出色,而且足夠快以至於不需要某種虛假的「暗示」來說「我希望這張桌子可以增長到包含1000個元素」。
不幸的是,締合表(字符串鍵,非連續的整數鍵),沒有,沒有。
對於陣列類型的表(其中經常1 ... N的整數索引正在使用),有一些性能優化功能,lua_rawgeti
和lua_rawseti
:http://www.lua.org/pil/27.1.html
對於字符串鍵,您可以使用lua_setfield
。
並測試程序看起來像快等,它是如何基準,這是爲什麼不夠快? :-)! – u0b34a0f6ae 2010-05-09 11:36:17
(另:每個條目只需要3個函數調用:push key,push value,rawset) – u0b34a0f6ae 2010-05-09 11:53:17
@ kaizer.se,rawset將表格放在堆棧上? – anon 2010-05-09 20:17:40