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