luabind 0.9.1迭代器始终只弹出最后一个对象

时间:2011-07-17 13:25:04

标签: c++ luabind

所有。通过使用luabind从lua脚本中读取数组,我遇到了一个陌生人的问题。

lua脚本如下所示:

root = 
{
        id = 1,
        id = 2,
        id = 3
};

并且c ++代码如下所示:     luabind :: object data_root = luabind :: globals(L)[“root”];

for (luabind::iterator i(data_root), end; i != end; ++i)
{
    luabind::object data = *i;
    unsigned int id = luabind::object_cast<unsigned int>(data);
    std::cout << "id:" << id << std::endl;
}

输出仅为:

id:3

我想输出[root]的所有元素,但它只输出最后一个元素。

谢谢你,杰森:)

1 个答案:

答案 0 :(得分:2)

root没有多个元素,只有一个元素。您已将密钥id分配给三个不同的值,但该密钥只存在一次且只有一个值与之关联,因此您基本上只会说root = { id = 3 }