lua 如何实现 C++ 里的 map

我是这样定义的:

lb_infos =
{
index,
lb_info =
{
id = 0,
model = 0
}
}

我这么用,却出错了:

lb_infos[i]["id"] = sqlid

用lua封装成类似c++中map的功能方法:
实现代码如下:
1、stl_map.lua //创建一个stl_map

2、map = {} //初始化为空
3、创建一个map
function map:new()
local object = {}

setmetatable(object, self)
self.__index = self

--用一个table来保存key
self.__keyList = {}

return object
end
4、使用:
插入元素[如果已存在该key,则不做改动,和STL一致]
function map:insert(key, value)
if(self[key] == nil) then
self[key] = value
table.insert(self.__keyList, key)
end
return self
end
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-14
lb_infos =
{
[0] =

{
id = 0,
model = 0
}

}本回答被提问者和网友采纳

lua 如何实现 C++ 里的 map
实现代码如下:1、stl_map.lua \/\/创建一个stl_map 2、map = {} \/\/初始化为空 3、创建一个map function map:new()local object = {} setmetatable(object, self)self.__index = self --用一个table来保存key self.__keyList = {} return object end 4、使用:插入元素[如果已存在该key...

请问一下C++怎样保存lua中的表,再利用
因为lua的table可以储存任何类型的变量 然而在C C++里实现的数组或是vector或是其他类型的存储结构存储的类型总是规定好,没办法像lua里那样灵活多变 如果只是想调用函数的话 先把表tb1放到堆栈里,取出tb1以test为下标的值 然后用lua_pcall 就能调用了 再就是 楼上那位 你复制的那个代码... 好巧 ...

lua中的泛型for用法为什么会直接使用talbe?
准确来说lua 中的table 更加像是C++中的map ,通过Key 对应存储Value ,但是并非顺序来保存key-value 对,而是使用了hash 的方式,这样能够更加快速的访问key 对应的value ,我们也知道hash 表的遍历需要使用所谓的迭代器来进行,同样,lua 也有自己的迭代器,就是上面4种遍历方式中的pairs 和ipairs 遍...

LUA语言入门
在Lua中,你可以非常方便的定义很长很长的字符串。 字符串在Lua中有几种方法来表示,最通用的方法,是用双引号或单引号来括起一个字符串的,如: "This is a string." 和C语言相同的,它支持一些转义字符,列表如下: \\a bell \\b back space \\f form feed \\n newline \\r carriage return \\t horizontal tab...

lua 脚本如何实现循环一套动作至规定时间后关闭程序然后重新打开。_百 ...
那这样得怎么实现定时的功能呢? lua有很强的扩展性 可以在它的宿主语言(一般是C\/C++)上实现好相关的lua接口 然后供脚本调用 所以 原理就是在你的宿主语言上实现好一个CFUNCTION 然后开放给lua来实现 但是一般开发者 只负责写脚本这边,而对宿主语言完全没有接触,甚至连lua的调用过程都不理解 所以相关...

Lua数据的内存结构
在Lua中,每个数据类型都以TValue形式存在。基本类型,包括浮点数、整数、布尔值、lightuserdata、C++函数,通常会占用12字节(实际内存对齐后为16字节)。gc指针指向Lua虚拟机托管的对象,例如字符串、Table、Userdata、协程、闭包、Proto等。这些对象的内存由虚拟机额外分配并托管。每个GC对象都具有一段公有...

lua脚本怎么写出来一个自动点开某程序功能的代码?
如下代码 :ret = NPCDialog( "Hello bitch" )if ret == OK then print("OK") end 对于策划而言,NPCDialog应该是阻塞的,除家操作此对话框,点击OK或者关闭,不然该函数不会返回。而对于宿主程序C++而言,如何实现这个函数呢:static int do_npc_dialog( lua_State *L ){ const char *content...

请问高手,怎样开发一个魔兽世界插件??软件编程
在Lua中,一切都是变量,除了关键字。请记住这句话。I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行注释。 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"\/\/"。 多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种...

请假个问题 我现在想暂停lua场景中的定时器,那我C++代码中要怎么写...
你是要获取资源,那得看动画资源的格式怎么定的啊,直接找到提取出来就行,跟语言没关系。比如你的资源是个个帧是一个数组:frameData[n] 就直接提取出了第n帧。

Lua的require小结
对于不允许定义全局变量的模块,可以使用setfenv设置函数环境(Lua 5.1)或修改env参数(Lua 5.2及以上版本),以避免全局污染。若package.path中找不到Lua模块,Lua会尝试从C++模块加载,C++路径由package.cpath指定。对于DLL,require内部使用package.loadlib方法实现,接受模块路径和给Lua调用的函数名称...

相似回答