LabVIEW中集合和映射表数据结构

2021-08-24  本文已影响0人  刘小白DOER

    最近在python中做一些实践,同时回想起LabVIEW中的一些做法,发现两者的关联性很大。在仔细研读python的数据结构后,转到LabVIEW发现了一个以前没有关注的数据结构-群体。根据NI介绍:群体是聚合同类数据的容器。群体中的每个对象为群体的元素或条目。使用群体数据类型创建用于存储和访问数据的高性能数据结构。LabVIEW包含以下群体数据类型:集合和映射表。

    LabVIEW群体数据结构与Python数据结构对应关系如下:

    都是编写语言,那么结构的功能基本一致。群体数据类型的键值(集合的元素、映射表的键值)都是不可变对象,这在Python或者LabVIEW都是一样的。

1、集合将相同类型的唯一有序数据元素归为一组。

       笔者新建了一个数值集合,生成的集合是有序的,按照大小顺序排列。相比未排序的数据结构(如数组),集合能够对数据进行更快地搜索、插入、更改及移除操作。但是,集合按照有序顺序维护元素的操作将占用内存开销,数组不占用内存开销。

2、映射表将 键-值 对按照有序顺序分组,其中所有的键均为唯一。

    插入 键-值 对至映射表将执行两种操作之一:添加键-值对至映射表,或在映射表中使用新值替换相关键的现有值,具体执行哪个操作取决于该键是否已经存在于映射表内。笔者新建的映射表中,键值也会按照大小顺序排列。

    既然有这样的数据结构,应用场景是哪里呢?应用场景是根据数据结构的特性来决定的,群体数据类型具有快速操作和键值唯一的特性,那么应用场景就有了。

1、需要快速计算的场合,可以牺牲一点内存来换取快速的迭代计算;

2、键值唯一的特性保证数据唯一性,摒弃重复数据,防止重复写入;

3、取代簇变量的一一对应关系。笔者以前使用簇变量来完成特定数据的查找,可以用映射表来完成这个功能。

    LabVIEW中使用群体操作数据的范例,笔者觉得Word Counting和Registration Map Usage两个案例颇有意义,可以参考学习,而且这两个案例是有应用场景的,待你发觉。

上一篇 下一篇

猜你喜欢

热点阅读