資料介紹
本文檔的主要內(nèi)容詳細(xì)介紹的是LabVIEW教程之LabVIEW中的泛型容器詳細(xì)資料說(shuō)明。
Google 網(wǎng)站里有個(gè) Google 實(shí)驗(yàn)室,有不少 Google 的產(chǎn)品最初就是放在這個(gè)實(shí)驗(yàn)室里的?,F(xiàn)在 NI 也有 NI 實(shí)驗(yàn)室了。NI 實(shí)驗(yàn)室公布出來(lái)的項(xiàng)目一般是 NI 工程師利用額外時(shí)間做的一些調(diào)查研究。這些項(xiàng)目不是公司的正式產(chǎn)品,但是它們的設(shè)計(jì)很有創(chuàng)新或者是比較有應(yīng)用潛力。與其讓這些項(xiàng)目被埋沒(méi)了,不如先看看用戶對(duì)這些項(xiàng)目的反應(yīng),如果相當(dāng)一部分用戶覺(jué)得某個(gè)項(xiàng)目非常有幫助,或許它就值得我們?yōu)槠湓黾油顿Y,把它作成正式產(chǎn)品了。
我這里給大家介紹其中的一個(gè)項(xiàng)目:“LabVIEW Generic Container Map”。因?yàn)檫@個(gè)項(xiàng)目是我設(shè)計(jì)的,所以對(duì)它了解比較多一些。當(dāng)時(shí),我們打算提出這個(gè)項(xiàng)目的時(shí)候,主要有兩個(gè)目的:第一是幫助用戶編寫(xiě)有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的應(yīng)用程序;第二是推進(jìn) LabVIEW 向通用編程語(yǔ)言方向做改進(jìn)。
C++ 的程序員基本都很喜歡 STL 這個(gè)模板庫(kù)。程序中常會(huì)使用數(shù)組、隊(duì)列、字符串等等數(shù)據(jù)類型和結(jié)構(gòu),如果自己設(shè)計(jì)實(shí)現(xiàn)這些數(shù)據(jù)結(jié)構(gòu)和相關(guān)的操作,是相當(dāng)耗費(fèi)精力的。好在 STL 實(shí)現(xiàn)了這些數(shù)據(jù)結(jié)構(gòu),和它們常用的操作方法。借用 STL 提供的功能,編程時(shí)很多細(xì)節(jié)方面不需要再去考慮了,這就讓工作簡(jiǎn)化了許多。嘗到 STL 甜頭的程序員,在編寫(xiě)程序的時(shí)候,已經(jīng)很難離開(kāi) STL 了。
STL 中非常重要的一個(gè)部分就是容器。容器用于存放數(shù)據(jù),程序通過(guò)調(diào)用容器的結(jié)構(gòu)函數(shù)保存數(shù)據(jù)到容器或者訪問(wèn)容器中的數(shù)據(jù)。容器也分為不同的類型,如鏈表、隊(duì)列等。它們?cè)跀?shù)據(jù)的組織方式上,或存取方式上有所分別,以適用不同的需求。STL 中的容器和方法都是泛型的或者說(shuō)是數(shù)據(jù)類型無(wú)關(guān)的,就是說(shuō)這些容器可以保存和操作任何類型的數(shù)據(jù)。
其它一些常用的編程語(yǔ)言,如 Java、C# 也都有類似的泛型容器以方便程序員使用。
LabVIEW 的主要方針是簡(jiǎn)化工程師們編寫(xiě)程序的難度,以前用 LabVIEW 編寫(xiě)的程序大多是工業(yè)領(lǐng)域流程控制類型的。這種類型的程序用不到太復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法,因此,LabVIEW 中對(duì)我們?cè)谟?jì)算機(jī)課程中學(xué)到的那些經(jīng)典數(shù)據(jù)結(jié)構(gòu)以及算法的支持并不多。
但是在我自己用 LabVIEW 多了之后,用它比用 C++ 要順手,任何類型的程序都喜歡使用 LabVIEW 來(lái)編寫(xiě),包括一些通常用途的程序。這時(shí)候,LabVIEW 缺乏對(duì)基本數(shù)據(jù)類型支持的缺點(diǎn)就格外突出了。于是我和周圍幾個(gè)同事就想到應(yīng)該在這些方面對(duì) LabVIEW 做一些補(bǔ)充,做一些比較規(guī)范的泛型容器和算法,一方面方便自己,也許還可以提供給別的用戶。
由于這不是正式項(xiàng)目,我們能投入的資源很有限,不可能一開(kāi)始就做得很全面。作為開(kāi)始,我們選擇了 Map 容器和它最常用的幾個(gè)方法。首先選擇 Map 一是因?yàn)樗容^常用,二是其它容器中,有些在概念上和 LabVIEW 中已有的一些函數(shù)比較接近,如果選則他們,可能會(huì)引起用戶的誤解。
LabVIEW 中的 Array 操作與 STL 中的 vector 是非常相似的,功能齊全,不需要考慮底層操作如內(nèi)存管理等。STL 中的 deque, queue, stack 等,與 LabVIEW 中的“隊(duì)列”(Queue)操作比較類似。但是 LabVIEW 中的隊(duì)列存在的目的不是為了作容器,而是用于在多線程程序中通訊。在“生產(chǎn)者/消費(fèi)者”程序模式中,經(jīng)常使用隊(duì)列在不同的線程中傳遞數(shù)據(jù)或消息。因?yàn)?LabVIEW 中隊(duì)列操作主要用于不同線程間的通訊,因此它的函數(shù)并沒(méi)有采用 LabVIEW 的主要傳參方式-傳數(shù)據(jù),而是采用了傳引用的方式。
我們實(shí)現(xiàn)的這個(gè) Map(這個(gè)按字面翻譯比較別扭,中文可能翻譯成“字典”還比較合理)泛型容器功能與 C++ STL 中的 Map 是類似的,它主要用于程序經(jīng)常需要按某一關(guān)鍵字查詢數(shù)據(jù)的情況。
Map 已經(jīng)包括了編寫(xiě)查詢程序時(shí)常用的操作,比如把數(shù)據(jù)放到容器中、查找一個(gè)數(shù)據(jù)、刪除、清空容器等。
我們的 LabVIEW Generic Container Map 內(nèi)部的數(shù)據(jù)是按照平衡二叉樹(shù)的方式組織存儲(chǔ)的,它的查詢復(fù)雜度比一般線性數(shù)據(jù)結(jié)構(gòu)的要低。這樣,在數(shù)據(jù)量很大的情況下,使用 Map 的程序效率明顯高于使用數(shù)組的程序。
- LabVIEW的屬性節(jié)點(diǎn)教學(xué) 32次下載
- LabVIEW的程序?qū)嵗?b class="flag-6" style="color: red">詳細(xì)資料說(shuō)明 145次下載
- 使用LabVIEW讀取Excle表格的詳細(xì)資料說(shuō)明 34次下載
- LabVIEW開(kāi)發(fā)技術(shù)教程之提高LabVIEW開(kāi)發(fā)速度25技巧的詳細(xì)資料說(shuō)明 16次下載
- LabVIEW開(kāi)發(fā)教程之LabVIEW界面設(shè)計(jì)秘訣的詳細(xì)資料說(shuō)明 241次下載
- LabVIEW字符串拆分的詳細(xì)資料說(shuō)明 12次下載
- LabVIEW開(kāi)發(fā)技術(shù)教程之深入淺出軟件加密技術(shù)的詳細(xì)資料說(shuō)明 29次下載
- LabVIEW的VI服務(wù)器詳細(xì)資料說(shuō)明 20次下載
- LabVIEW教程之結(jié)構(gòu)與屬性控制的詳細(xì)資料說(shuō)明 13次下載
- LabVIEW教程之字符串與文件IO的詳細(xì)資料說(shuō)明 24次下載
- 使用LabVIEW設(shè)計(jì)掃雷游戲的詳細(xì)資料說(shuō)明 61次下載
- 基于labview的語(yǔ)音播報(bào)與識(shí)別的詳細(xì)資料說(shuō)明 37次下載
- LabVIEW通信編程的詳細(xì)資料說(shuō)明 26次下載
- LabVIEW不同VI之間相互調(diào)用的詳細(xì)資料說(shuō)明 28次下載
- labview教程之Labview通過(guò)OPC與PLC通訊步驟說(shuō)明 190次下載
- labview生成應(yīng)用程序怎么包括userlist 548次閱讀
- labview怎么記錄時(shí)間和數(shù)據(jù) 4206次閱讀
- LabVIEW中的動(dòng)態(tài)事件 7752次閱讀
- LabVIEW串口示波器設(shè)計(jì) 1995次閱讀
- 使用LabView控制DS3900串程通信模塊 1315次閱讀
- LabVIEW的編程之道—事件注冊(cè)和取消注冊(cè)方法 6137次閱讀
- Labview創(chuàng)建數(shù)組函數(shù)的方法分享 1w次閱讀
- 如何進(jìn)行PLC控制程序的設(shè)計(jì)詳細(xì)資料PPT說(shuō)明 6010次閱讀
- 盤(pán)點(diǎn)LabVIEW新手5大容易犯的錯(cuò)誤 4821次閱讀
- PPT教程之伺服電機(jī)及其驅(qū)動(dòng)技術(shù)的詳細(xì)資料講解 8034次閱讀
- PLC常用基本環(huán)節(jié)梯形圖和詳細(xì)文字說(shuō)明詳細(xì)資料概述 1w次閱讀
- labview和485串口通信 2.5w次閱讀
- labview怎么調(diào)試?基于labview的USB調(diào)試教程案例分析 1.3w次閱讀
- labview讀取串口數(shù)據(jù) 2.6w次閱讀
- labview串口數(shù)據(jù)處理_labview串口通信 3w次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論