1

私が知っている:http: //lua-users.org/wiki/SimpleLuaApiExample

エントリごとにテーブル(キー、値)ペアのエントリを作成する方法を示します。

代わりに、巨大なテーブル(たとえば、キーと値の両方が文字列である1000エントリテーブル)を作成したいとします。これをluaですばやく実行する方法はありますか(エントリごとに4つのfunc呼び出しではありません:

push
key
value
rawset
4

4 に答える 4

4

あなたが書いたこと、この問題を解決するための迅速な方法です。 Lua テーブルは見事に設計されており、「このテーブルは 1000 個の要素を含むようになると予想されます」という偽の「ヒント」を必要としないほど十分に高速です。

于 2010-05-09T15:42:30.020 に答える
1

文字列キーの場合は、lua_setfield.

于 2010-05-09T13:47:58.937 に答える
0

createtable を使用して、必要な数のスロットが既にあるテーブルを作成できます。ただし、その後は、それ以外に速くする方法はありません

for(int i = 0; i < 1000; i++) {
    lua_push... // key
    lua_push... // value
    lua_rawset(L, tableindex);
}
于 2010-05-09T15:45:24.167 に答える
0

残念ながら、連想テーブル (文字列キー、非連続整数キー) の場合はありません。

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

于 2010-05-09T10:31:45.567 に答える