c++ map插入key值相同的数据_LabVIEW Map容器——一种高效增减改删的数据结构

       LabVIEW2019推出两种新的数据结构Map和Set,我们这篇文章先聊聊Map容器数据结构。

       Map容器数据结构有“Key”和“Value”两项组成,类似于变体的属性设置方法。Key值在Map数据结构中具有唯一性,具有Key和Value的一对一特性,在编程上提供快速通道。Map容器的内部数据组织,也是一种二叉树结构,其搜索速度是O(log n)。

f3ee5d1458648961547cf4a1fb7a3c4c.png

这里我们注意到“Key”和"Value"支持任意数据类型。

LabVIEW2019之前是没有Map数据类型的,我们要使用类似于这种二叉树的数据结构,只有变体的属性节点(设置属性、读取属性)。

c1ae301eadc7b9a104d40c4944e47819.png

这里设置属性也是name是唯一的(字符串类型),Value支持任意数据类型。

1)数据插入速度比较:

1.1)Map容器插入:运行100000次,运行时间是83ms.

17216aea245e83b791321d8e8bb241ef.png

1.2)变体属性插入:运行100000次,运行时间是142ms

372b05c8fada8a9db70edf923f29d936.png

对于相同的数据量Map容器的数据插入效率优于变体属性设置的方法。

2. 数据搜索速度对比:

我将原始数组各行拆分搜索,

2.1)Map容器搜索,如下图,50000次搜索,102ms.

9caeb08ba53fb529f7ae38c01c2e0537.png

2.2)变体属性搜索,如下图,50000次搜索,181ms.

a9a07432aa39e010a8bc5d9316a7c68a.png

对于相同的数据量Map容器的搜索速度优于变体的属性节点。

3. 数据删除速度对比

3.1)Map容器数据删除 50000次删除,111ms

20adde44dacffec1e4974f3ab3b24492.png

3.2) 变体属性删除 50000次删除,181ms

bb8551bf12030d134a3c14729f3e416b.png

删除速度,Map容器的删除速度优于变体属性的删除速度。

通过以上、数据插入、数据搜索、数据删除三个实验,Map容器的速度由于变体属性节点的速度。

除了上述速度优势外,Map函数包还提供了,数据大小、最大值最小值等函数。在同址操作框图上也也增加了Map容器数据类型的搜索。

820cee2cc80c35ff168ed692223669ee.png

总结:

LabVIEW2019版本推出的Map容器数据结构,提供了key与value的一一对应的树形数据结构,其效率优于变体的属性设置方法。大家可以在写程序时灵活运用。

=========================

有任何问题欢迎交流:

e396cb6dabf6e375124b3aae53bfa64d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值