LabVIEW2019推出两种新的数据结构Map和Set,我们这篇文章先聊聊Map容器数据结构。
Map容器数据结构有“Key”和“Value”两项组成,类似于变体的属性设置方法。Key值在Map数据结构中具有唯一性,具有Key和Value的一对一特性,在编程上提供快速通道。Map容器的内部数据组织,也是一种二叉树结构,其搜索速度是O(log n)。
这里我们注意到“Key”和"Value"支持任意数据类型。
LabVIEW2019之前是没有Map数据类型的,我们要使用类似于这种二叉树的数据结构,只有变体的属性节点(设置属性、读取属性)。
这里设置属性也是name是唯一的(字符串类型),Value支持任意数据类型。
1)数据插入速度比较:
1.1)Map容器插入:运行100000次,运行时间是83ms.
1.2)变体属性插入:运行100000次,运行时间是142ms
对于相同的数据量Map容器的数据插入效率优于变体属性设置的方法。
2. 数据搜索速度对比:
我将原始数组各行拆分搜索,
2.1)Map容器搜索,如下图,50000次搜索,102ms.
2.2)变体属性搜索,如下图,50000次搜索,181ms.
对于相同的数据量Map容器的搜索速度优于变体的属性节点。
3. 数据删除速度对比
3.1)Map容器数据删除 50000次删除,111ms
3.2) 变体属性删除 50000次删除,181ms
删除速度,Map容器的删除速度优于变体属性的删除速度。
通过以上、数据插入、数据搜索、数据删除三个实验,Map容器的速度由于变体属性节点的速度。
除了上述速度优势外,Map函数包还提供了,数据大小、最大值最小值等函数。在同址操作框图上也也增加了Map容器数据类型的搜索。
总结:
LabVIEW2019版本推出的Map容器数据结构,提供了key与value的一一对应的树形数据结构,其效率优于变体的属性设置方法。大家可以在写程序时灵活运用。
=========================
有任何问题欢迎交流: