【问题标题】:Passing 2D table from Lua to C++将二维表从 Lua 传递到 C++
【发布时间】:2019-07-10 17:20:02
【问题描述】:

我正在寻找几个小时来将 2d 表从 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);
}

我怎样才能正确地得到这个表?

【问题讨论】:

  • 您使用0 作为索引。这不是序列的一部分。

标签: c++ lua


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 2014-08-28
    • 2011-01-14
    • 2013-07-24
    • 1970-01-01
    • 2013-02-19
    • 2018-07-28
    • 2012-05-04
    相关资源
    最近更新 更多