Frage

Ich kenne: http://lua-users.org/wiki/SimpleLuaApiExample

Es zeigt mir, wie durch die Eingabe einer Tabelle (Schlüssel, Wert) -Paar Eintrag aufzubauen.

Nehmen wir stattdessen, ich möchte eine gigantische Tabelle (sagen wir etwas ein 1000 Eintragstabelle, wo beide Schlüssel & Wert Strings) bauen, ist es eine schnelle Möglichkeit, dies in lua zu tun (statt 4 func Anrufe pro Eintrag:

push
key
value
rawset
War es hilfreich?

Lösung

Was Sie geschrieben haben, ist die schnelle Möglichkeit, dieses Problem zu lösen. Lua Tabellen brillant konstruiert sind, und schnell genug, dass es keine Notwendigkeit für irgendeine Art von Schein ist " Hinweis“zu sagen:‚ich erwarte, dass diese Tabelle enthält 1000 Elemente wachsen.‘

Andere Tipps

Bei String-Tasten können Sie lua_setfield verwenden.

Leider für assoziative Tabellen (String-Schlüssel, nicht aufeinanderfolgende ganzzahlige Schlüssel), nein, es ist nicht.

Für Array-Typ-Tabellen (wo die regulären 1 ... N ganzzahlige Indizieren verwendet wird), gibt es einige leistungsoptimierte Funktionen, lua_rawgeti und lua_rawseti: http://www.lua.org/pil/27.1.html

Sie können mit Create eine Tabelle erstellen, die bereits die erforderliche Anzahl von Schlitzen. Aber danach gibt es keine Möglichkeit, es schneller als andere

zu tun
for(int i = 0; i < 1000; i++) {
    lua_push... // key
    lua_push... // value
    lua_rawset(L, tableindex);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top