一、 映射表的概念
在了解映射表的概念之前,我們需要先明確映射的概念,映射是一個數(shù)學名詞,它指的是集合與集合之間的一種對應關系:集合A中的每一個元素都在集合B中存在與之對應的元素。
下面引入LabVIEW中的映射表的概念:由多對“鍵-值”對組成的條目集合。其中所有鍵都是唯一的,而值可以不唯一,每一個鍵都必須有一個與之對應的值。
由此可見鍵和值之間存在映射關系,由多對“鍵-值”條目組成的集合就是映射表,鍵和值可以分別為任意數(shù)據(jù)類型。映射表也可以稱為字典,因為查找映射表類似于查字典,“鍵”通常被用于查找“值”。
二、映射表的API
生成映射表:使用輸入的所有“鍵-值”對創(chuàng)建一個映射表。對于具有重復鍵的條目,該函數(shù)僅包括結(jié)果映射表中的最后一個條目。各個鍵的數(shù)據(jù)類型必須相同,各個值的數(shù)據(jù)類型也必須相同。
插入映射表:給已有映射表中插入一個新的條目后輸出結(jié)果映射表。如果鍵已包含在映射表中,則此函數(shù)將用新的關聯(lián)值替換鍵的原始值。
從映射表中刪除:從已有映射表中刪除指定條目后輸出結(jié)果映射表。當鍵存在時返回該鍵相關聯(lián)的值。
在映射表中查找:檢查映射表是否包含指定鍵的條目,并返回鍵的關聯(lián)值。如果不包含指定鍵則會返回T。
讀取映射表最大值和最小值:映射表中的鍵可以看作一個集合,該API可以獲取到所有鍵集合中的最大元素和最小元素。
群體大小:返回輸入的群體的元素個數(shù),即群體的大小。(該API集合和映射表通用)
空群體:當輸入的群體中元素個數(shù)為零時返回T。(該API集合和映射表通用)
二、 映射表的相關知識
1、雖然變體屬性也可以用作字典來查找值,但是映射表更靈活,因為鍵和值都可以是任何LabVIEW數(shù)據(jù)類型。對于變體屬性,鍵必須是字符串,值必須是變體。相比變體屬性,映射表更加不容易出錯。對于映射表,LabVIEW在編輯時返回連線錯誤,因為值接收指定的數(shù)據(jù)類型。對于變體屬性,LabVIEW在運行時返回接線錯誤,因為該值是接受任何數(shù)據(jù)的變體類型。
2、映射表可以通過循環(huán)的索引輸入訪問到每個條目,條目是以簇的形式呈現(xiàn)(簇中包含鍵和值兩個元素),并且再通過一次索引輸出轉(zhuǎn)換成一個簇數(shù)組,如下圖所示:
3、映射表操作(插入、刪除、查找等)相對于數(shù)組操作(插入、刪除、索引)映射表操作消耗的資源會更多,但是它的執(zhí)行速度和效率遠高于數(shù)組操作。
三、群體數(shù)據(jù)類型的應用場景
1、快速計算:雖然集合和映射表作為群體數(shù)據(jù)結(jié)構(gòu)具備有序性會額外消耗部分內(nèi)存開銷,但是它們可以對數(shù)據(jù)進行更快地搜索、插入、更改以及刪除等操作,所以十分適合應用在需要快速計算的應用場景下;
2、防止重復寫入:由于群體數(shù)據(jù)類型中元素或條目具有唯一性,這使得它可以防止重復寫入,保證數(shù)據(jù)的唯一性,所以十分適合應用在需要放置重復寫入的應用場景下。
3、查找特定數(shù)據(jù):在LabVIEW 2019之前,存儲有序數(shù)據(jù)或有對應關系的數(shù)據(jù)時會選擇簇或數(shù)組,并且操作簇或數(shù)組來完成特定數(shù)據(jù)的查找,但現(xiàn)在可以用集合與映射表來替代。
四、拓展:
集合與映射表都屬于群體數(shù)據(jù)結(jié)構(gòu),而群體數(shù)據(jù)結(jié)構(gòu)除了LabVIEW中有,在其他很多編程語言中也有。比如python中有Set(集合)和Dict(字典)數(shù)據(jù)結(jié)構(gòu),它就對應了LabVIEW中的集合與映射表。Python和LabVIEW的群體數(shù)據(jù)結(jié)構(gòu)對應關系如下:
審核編輯:劉清
-
LabVIEW
+關注
關注
1977文章
3657瀏覽量
325623 -
python
+關注
關注
56文章
4807瀏覽量
85037
原文標題:知識分享 | LabVIEW中的群體數(shù)據(jù)類型(二)
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論