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