質問
私は知っています:http://lua-users.org/wiki/simpleluaapiexample
エントリごとにテーブル(キー、値)ペアエントリを構築する方法を示しています。
代わりに、巨大なテーブルを構築したいとします(キーと値の両方が文字列である1000のエントリテーブルと言ってください)、LUAでこれを行うための迅速な方法がありますか(エントリごとに4つのFUNC呼び出しではありません。
push
key
value
rawset
解決
あなたが書いたもの は この問題を解決するための迅速な方法。 LUAテーブルは見事に設計されており、十分に速く、「このテーブルが1000の要素を含めると予想される」と言う「ヒント」の「ヒント」は必要ありません。
他のヒント
文字列キーの場合、使用できます lua_setfield
.
残念ながら、連想テーブル(String Keys、非継続的な整数キー)の場合、いいえ、そうではありません。
配列タイプのテーブル(通常の1 ... n整数インデックスが使用されている場合)には、いくつかのパフォーマンス最適化機能があります。 lua_rawgeti
と lua_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);
}
所属していません StackOverflow