summaryrefslogtreecommitdiff
path: root/Data/DefaultContent/Libraries/containers/vector.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Data/DefaultContent/Libraries/containers/vector.lua')
-rw-r--r--Data/DefaultContent/Libraries/containers/vector.lua122
1 files changed, 0 insertions, 122 deletions
diff --git a/Data/DefaultContent/Libraries/containers/vector.lua b/Data/DefaultContent/Libraries/containers/vector.lua
deleted file mode 100644
index 0b349ce..0000000
--- a/Data/DefaultContent/Libraries/containers/vector.lua
+++ /dev/null
@@ -1,122 +0,0 @@
----
---- Generated by EmmyLua(https://github.com/EmmyLua)
---- Created by Dee.
---- DateTime: 2019/3/7 14:00
---- 快速遍历修改,低效的增删
----
-
-vector = vector or {}
-
-function vector.create()
- local t = {}
-
-
- ---尾添加元素(高效)
- function t:add(v)
- rawset(self, #self + 1, v)
- end
-
- ---插入(低效)
- ---@param k 位置
- ---@param v 值
- function t:insert(k, v)
- assert(k > 0 and k <= #self, "outrange of vector")
-
- local cnt = #self
- for i = cnt, k, -1 do
- rawset(self, i+1, self[i])
- end
-
- rawset(self, k, v)
- end
-
- ---值的索引
- ---@return -1不存在
- function t:indexOf(i_v)
- assert(type(self) == 'table')
-
- local ret = -1
- local cnt = #self
- for i = 1, #self do
- if self[i] == i_v then
- ret = i
- end
- end
-
- return ret
- end
-
- ---是否存在某元素
- function t:contains(v)
- assert(type(self) == 'table')
- return self:indexOf(v) ~= -1
- end
-
- ---根据下标索引移除元素(低效)
- function t:removeAt(idx)
- assert(idx <= #self)
- table.remove(self, idx)
- end
-
- ---删除值(非贪婪)
- ---@return 删除位置 -1未删除
- function t:remove(v)
- local ret = self:indexOf(v)
- if ret ~= -1 then
- self:removeAt(ret)
- end
-
- return ret
- end
-
- ---删除所有值
- function t:removeAll(v)
- assert(type(self) == 'table')
- error(">>Dee: wait ...")
- end
-
- ---排序
- function t:sort(comparer)
- assert(type(self) == 'table')
- table.sort(self, comparer)
- end
-
- ---匹配
- ---@param 匹配函数
- ---@return idx,value
- function t:find(matcher)
- assert(type(self) == 'table')
-
- local _idx, _value = -1, nil
- local cnt = #self
- for i = 1, cnt do
- if matcher(i, self[i]) then
- _value = self[i]
- _idx = i
- break
- end
- end
-
- return _idx, _value
- end
-
- --------------------------------metatable---------------------------------------
- t.__newindex = function(i_t,k,v)
- error(">> Dee: [], replace with add()")
- end
-
- t.__tostring = function(i_t)
- return table.concat(i_t, ',')
- end
-
- t.__pairs = function(...)
- error(">> Dee: Limited access")
- end
-
- setmetatable(t, t)
- -----------------------------------------------------------------------
-
- return t
-end
-
-return vector \ No newline at end of file