资料介绍
本文档的主要内容详细介绍的是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次下载 | 免费
评论
查看更多