質問

私は知っています:http://lua-users.org/wiki/simpleluaapiexample

エントリごとにテーブル(キー、値)ペアエントリを構築する方法を示しています。

代わりに、巨大なテーブルを構築したいとします(キーと値の両方が文字列である1000のエントリテーブルと言ってください)、LUAでこれを行うための迅速な方法がありますか(エントリごとに4つのFUNC呼び出しではありません。

push
key
value
rawset
役に立ちましたか?

解決

あなたが書いたもの この問題を解決するための迅速な方法。 LUAテーブルは見事に設計されており、十分に速く、「このテーブルが1000の要素を含めると予想される」と言う「ヒント」の「ヒント」は必要ありません。

他のヒント

文字列キーの場合、使用できます lua_setfield.

残念ながら、連想テーブル(String Keys、非継続的な整数キー)の場合、いいえ、そうではありません。

配列タイプのテーブル(通常の1 ... n整数インデックスが使用されている場合)には、いくつかのパフォーマンス最適化機能があります。 lua_rawgetilua_rawseti: http://www.lua.org/pil/27.1.html

createTableを使用して、必要なスロットを既に持っているテーブルを作成できます。しかし、その後、それをより速くする方法はありません

for(int i = 0; i < 1000; i++) {
    lua_push... // key
    lua_push... // value
    lua_rawset(L, tableindex);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top