当前位置:  编程技术>c/c++/嵌入式

c++遍历lua table示例

    来源: 互联网  发布时间:2014-10-25

    本文导语:  c/c++从栈上获取Lua压栈过来的table数据 代码如下:map traverse_table(lua_State *L, int index){ map data;    lua_pushnil(L);     // 现在的栈:-1 => nil; index => table index = index - 1;    while (lua_next(L, index))    {        // 现在的栈:-1 => value;...

c/c++从栈上获取Lua压栈过来的table数据

代码如下:

map traverse_table(lua_State *L, int index)
{
 map data;
    lua_pushnil(L);
    // 现在的栈:-1 => nil; index => table
 index = index - 1;
    while (lua_next(L, index))
    {
        // 现在的栈:-1 => value; -2 => key; index => table
        // 拷贝一份 key 到栈顶,然后对它做 lua_tostring 就不会改变原始的 key 值了
        lua_pushvalue(L, -2);
        // 现在的栈:-1 => key; -2 => value; -3 => key; index => table

        const char* key = lua_tostring(L, -1);
        const char* value = lua_tostring(L, -2);

  data[key]=value;
        // 弹出 value 和拷贝的 key,留下原始的 key 作为下一次 lua_next 的参数
        lua_pop(L, 2);
        // 现在的栈:-1 => key; index => table
    }
    // 现在的栈:index => table (最后 lua_next 返回 0 的时候它已经把上一次留下的 key 给弹出了)
    // 所以栈已经恢复到进入这个函数时的状态
 return data;
}

    
 
 

您可能感兴趣的文章:

  • c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
  • C++实现二叉树非递归遍历方法实例总结
  • c++类库Boost.Bimap(遍历,插入,查找,删除)参考代码
  • c++ builder TreeView控件节点遍历代码
  • c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
  • C++实现二叉树遍历序列的求解方法
  • c++ STL List查找遍历及各成员函数用法详细介绍
  • c++二叉树的几种遍历算法
  • C++实现哈夫曼树简单创建与遍历的方法
  • C++非递归遍历磁盘文件和递归遍历磁盘文件的程序示例
  • 探讨:C++实现链式二叉树(用非递归方式先序,中序,后序遍历二叉树)
  • 二叉树遍历 非递归 C++实现代码
  • jquery遍历checkbox简单示例
  • php遍历目录输出目录及其下的所有文件示例
  • python遍历文件夹并删除特定格式文件的示例
  • Jquery遍历Table表头(示例)
  • php无限遍历目录示例
  • python使用os模块的os.walk遍历文件夹示例
  • jQuery遍历Table应用示例
  • c#递归遍历文件夹示例
  • PHP中多维数组的foreach遍历示例
  • php 遍历指定路径下所有目录与文件(示例)
  • php无限遍历文件夹示例分享
  • java集合map取key使用示例 java遍历map
  • jquery中each遍历对象和数组示例
  • java使用iterator遍历指定目录示例分享
  • java数组遍历 删除remove(示例代码)
  • python实现dict版图遍历示例
  • php遍历文件夹下的所有文件和子文件夹示例
  • c#基础之数组与接口使用示例(遍历数组 二维数组)
  • Jquery节点遍历next与nextAll方法使用示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java map(HashMap TreeMap)用法:初始化,遍历和排序详解
  • jquery遍历筛选数组与遍历解析json对象
  • python内置映射类型(mapping type):dict哈希字典遍历方式及其它用法举例
  • php遍历数组四种方法 php数组遍历实例
  • 请问如何遍历目录并拷贝文件?使用bash Shell。
  • 高分请教高手!目录定时遍历????
  • PHP文件遍历小例子
  • C#中遍历DataSet数据集对象实例
  • php无限遍历目录代码
  • php遍历目录与其下所有文件
  • jquery进行数组遍历如何跳出当前的each循环
  • jquery遍历checkbox代码与说明
  • 请问怎么用Java实现一个URL的遍历??急!!!!
  • 请问怎样遍历一个hashtable
  • 在遍历目录的情况下如果遇到符号连接…………
  • Shell programme:怎样遍历整个/目录
  • 遍历其文件动态变化的目录
  • 求遍历文件shell
  • 求一段ShellScript,关于遍历文本文件
  • 遍历目录脚本运行出错
  • 层次遍历,结果不对


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3