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