从Lua传递2D表到C ++

时间:2019-07-10 17:20:02

标签: c++ lua

我在寻找将Lua的二维表传递给C ++的时间。 Lua文档真的很烂。

我在 Lua 5.1 上有这张桌子,我想将其传递给c ++

local costs = {
[0] = {
    1.0,
    1.0,
    1.0,
    1.0,
    1.41,
    1.41,
    1.41,
    1.41,
},
[1] = {
    2.0,
    2.0,
    2.0,
    2.0,
    2.41,
    2.41,
    2.41,
    2.41,
}

}

这适用于简单的一维表,但我什至无法获得键

int len = lua_rawlen(L, 1);
for (int i = 0; i < len; i++)
{
  lua_pushinteger(L, i + 1);
  lua_gettable(L, -2);
  printf("Key %i\n", lua_tointeger(L, -1));
  lua_pop(L, 1);
}

如何正确获取此表?

1 个答案:

答案 0 :(得分:0)

我发现了这个:Iterating a multidimensional Lua Table in C

有效。但是,如果有更好的解决方案,我真的很想学习。我更喜欢使用带有大小的for循环,但是lua_rawlen总是返回1。