C++向Lua传递嵌套table

lua_newtable(L); //创建外部表
for (int i = 0; i < len; i++) {
    lua_newtable(L);//创建表
    void * item = vector->at(i);
    for (int n = 0; n < item->num; n++) {
        lua_pushstring(L, item->key[n].c_str()); //将key压栈
        lua_pushstring(L, item->value[n].c_str());//将value压栈
        lua_settable(L, -3); //t[k] = v 把key和value都从堆栈中弹出
    }
    lua_pushinteger(L, i + 1); //将key压栈
    lua_insert(L, -2); //把栈顶元素(即table)插入到第二位
    lua_settable(L, -3); //t[k] = v 把key和value都从堆栈中弹出
}