LUA-C++交互篇-lua向C++传递Table
1.代码块
1.1 LUA代码块
1.2 C++代码块
2. 测试
2.1 print输出
1.代码块
所有涉及到的代码将会在本部中进行展示
1.1 LUA代码块
在本段代码中,我们将一个tab传递给了c++
1
local tab = {x=1.41,y = 3.3,z = 4.12};
core.setPos(tab);
//这里的core是我们开发的c++共享库
1.2 C++代码块
c++将会处理接收tab数据
typedef unordered_map<string, double> sdmap;
static void print(sdmap& map) {
sdmap::iterator it = map.begin();
while (it != map.end()) {
cout << setw(5) << it->first<<" "<<setw(10)<<it->second<<endl;
it++;
}
}
static sdmap checkTable(lua_State *L) {
lua_pushnil(L);
sdmap sdp;
while (lua_next(L, 1) != 0)
{
sdp.insert({ lua_tostring(L, -2) , lua_tonumber(L, -1) });
lua_pop(L, 1);
}
return sdp;
}
static int setPos(lua_State* L) {
sdmap tb = checkTable(L);
print(tb);
return 0;
}
2. 测试
2.1 print输出
————————————————
版权声明:本文为CSDN博主「卜若」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37080133/article/details/113760543