精华内容
下载资源
问答
  • //建立自己新建的类的对象my1 if(my1.exec()==QDialog::Accepted) //利用Accepted 信号判 断enterBtn 是否被按下 { w.show(); //如果被按下,显示主窗口 return a.exec(); //程序一直执行,直到主窗口 关闭 } else ...
  • 要想成为一名优秀Flex编程人员,单单知道怎么样去使用Flex内建容器和组件是不够,而且是...尽管面向对象这个概念并不是很理解,但是面向对象编程是学习Flex一个前提条件。如果你之前有面向对象编程

    要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远远不够。

    下面是我对这个问题的一些看法......并且给出了一些资源和关键字,你可以通过Google轻易地找到这些关键字。

    1、面向对象编程(OOP)

    ActionScript 3是Flex的基石,它是一个完全面向对象的语言。尽管面向对象这个概念并不是很好理解,但是面向对象编程是学习的Flex的一个前提条件。如果你之前有面向对象编程(Java, C#, Ruby等)的经验的话,那么你就可以很快入门。如果没有的话,那么你须要迟早找本OOP的书籍来学一下。


    注意:有些人可能会问 - “那么设计模式呢?”让我们一步一步来,好吗?你们自己先学一下类和对象、接口、继承、组合、多态、封装等。只有学完这些之后你才可以去学习设计模式。事实上,如果我要写一篇名为“一名伟大的Flex开发者须要知道的10个内容”的文章话,那么设计模式将会是第一个。


    2、ActionScript/MXML

    ActionScript是与MXML一起配合来开发Flex应用程序的。MXML是一种用XML写成的基于标签的声明性语言。每一个标签都映射到一个与之相对应的ActionScript类。MXML主要是用来对用户界面进行布局,而ActionScript则用来实现业务逻辑。当然存在例外的情况。

    Flex Framework包括上百个ActionScript类和接口来帮助你开发Flex应用程序。你对ActionScript以及MXML的熟练程度直接影响到你的技术水平。


    注意:你应该对Flex Language Reference非常熟悉。作为一个Flex开发者,你基本上每天都要用到它。


    3、调试

    开发者的很大一部分时间都是在调试。明显地,调试需要找到错误的根源。但是,调试也是学习新语言很好的一种方式。

    很幸运地,网上有许多可用的工具来帮你进行调试。花点时间来学习使用这些工具。很快你所花的时间就会给你带来效益了。



    4、事件驱动编程

    Flex应用程序是事件驱动的。每一个动作都是一个异步事件产生的结果。

    作为一名Flex开发者,你必须知道怎么样去响应事件、怎么样去创造事件和抛出事件。为了实现这一点,你必须对Flex的事件结构有充分的了解,也就是说,你要熟悉以下几点概念:


    • 内建事件(Flash Player或者Flex Framework事件)
    • 自定义事件(由开发者定义的继承自Event类或其子类的事件)
    • 事件抛出,事件广播(查看EventDispatcher类和它的dispatchEvent方法)
    • 事件侦听,事件处理(查看EventDispatcher类和它的addEventListener和removeEventListener方法)
    • 事件流(捕获、目标和冒泡阶段;target与currentTarget的区别)
    • 事件默认行为(查看Event类及其子类和preventDefault方法)


    5、数据绑定

    表面上,数据绑定很容易理解。把一个属性的值与另一个属性的值绑定到一起。当源属性的值发生改变时,目标属性的值也会改变。

    然而,如果随意使用数据绑定的话是会影响程序性能的。充分了解数据绑定能够帮助你决定什么时候适合用数据绑定,什么时候不适合。

    Flex Tips - Using Bindable Metadta Events
    Michael Labriola's presentatin entitled Diving in the Data Binding Waters

    6、项目渲染器(item renderer)

    设计优秀的Flex应用程序的一个特点是其显示数据的方式在视觉上令人信服。Flex提供了一些基于列表的负责显示数据的控件(DataGrid,List, TileList, HorizontalList等)。然而,只有使用项目渲染器才能让这些基于列表的控件自定义数据显示方式。



    7、访问远程数据

    你见过哪些应用程序是不用与数据打交道的吗?我没见过。学习如何使用HTTPService、WebService和RemoteObject来获取数据。一个Flex结构框架或许可以帮你(看第9点)



    8、样式/皮肤

    不要忘记Flex是一种图形用户界面技术,因此存在一定的设计期望。作为一名Flex开发者 ,你应该知道如何通过CSS样式或者其它方式来自定义你的Flex应用程序的外观。

    要使用Flex 4,就没有借口。花点时间来开发一下你的右脑,这是一次不错的改变,并且它可以让你与其它Flex开发者区分开来。



    9、至少一种Flex结构框架

    大多数Flex结构框架都实现了MVC设计。并且,许多框架都支配着你的代码的组织方式和包装方式。

    尽管有些人会认为使用框架是没有必要的,但是我相信即使只使用一个框架也会让一个Flex开发者受益匪浅。简单地看着一项技术(好的或坏的)使用框架来解决一些结构性问题能帮助作为开发者或架构师的你成长。

    并且,你也不能否认如果你有使用框架的经验,那么你的职位竞争力将会在本质上有所提高。Jess Warden最近告诉我“只有少数商店不使用框架,但这是罕见的。不管你喜不喜欢,使用框架已经成为一种'时尚'。”我同意他的观点。



    10、组件的生命周期和显示列表

    之前我是觉得不用去学Flex组件生命周期和显示列表的,直到我第一次写自定义组件的时候。在此之前,我都是使用内建的Flex组件并且很高兴地让MXML帮我处理显示列表。我从没使用过addChild、createChildren或者commitProperties方法,我使用了creationComplete事件来做全部事情。

    我第一个自定义组件使用了许多异步事件,我并不能预测事件处理的顺序。但是在我学习了Flex组件生命周期方法之后,我重新掌握了控制。

    这些生命周期方法早就有了。学习一下它们是怎么工作的,并且利用它们来帮助你解决问题。你掉的头发越少,你的生活会更加美好。

    展开全文
  •  9.3.3 根据键找到对应值  第10章 用STL中通用算法处理数据  10.1 STL算法中“四大帮派”  10.2 容器元素查找与遍历  10.2.1 用for_each()算法遍历容器中数据元素  10.2.2 用find()和find_if()算法...
  • 6.17 有个很好的窍门,如果我这样写:intrealarray[10];int*array=&realarray[-1];我就可以把“array”当作下标从1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器...
  • *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 22 2.6 为什么声明extern f(struct x *p); 给我报了一个晦涩难懂警告信息? 23 2.7 我遇到这样声明结构代码:struct name {int namelen; ...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    《你必须知道的495个C语言问题》结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 -----------------------------------------------------------------------...
  • 6.17 有个很好的窍门,如果我这样写:intrealarray[10];int*array=&realarray;[-1];我就可以把“array”当作下标从1 开始的数组。  函数和多维数组  6.18 当我向一个接受指针的指针的函数传入二维数组的时候,...
  •  *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂警告信息? 2.7 我遇到这样声明结构代码:structname{intnamelen;charnamestr[1];...
  • 本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。 第1章 声明和初始化 30 基本类型 30 1.1 我该如何决定使用哪种整数类型? 30 1.2 为什么不精确定义...
  • 决策树算法通俗讲解

    千次阅读 2018-11-05 15:22:06
    决策树就是先把一堆数据依次按照某一个条件(特征)划分子集,构建成树,然后来一条新的...那么好几个特征中我们选择哪个特征作为决策对象才会有好的划分效果呢?首先我们要找到决定性的特征。还有一个问题,怎么样...

            决策树就是先把一堆数据依次按照某一个条件(特征)划分子集,构建成树,然后来一条新的数据,让新数据按照构造树时的条件一一比较,直到找到叶子节点确定类别。

    (一)构造决策树

            我们知道每一条数据中都包含几个特征(值),决策树需要根据某一条件来判断划分子集。那么好几个特征中我们选择哪个特征作为决策对象才会有好的划分效果呢?首先我们要找到决定性的特征。还有一个问题,怎么样就算好的划分效果呢?

            这里我们用到了一个理论概念“信息增益”。构造决策树的目的是:将同一类别数据放到一个子集中,将无序的数据变得更加有序。信息增益就是:在划分数据集之前之后信息发生的变化。获得信息增益最高的特征就是最好的特征。

            下一个问题:怎么度量信息增益值,另一个概念出来了:香农熵。我们要计算所有类别所有可能包含的信息期望值,通过下面的香农熵公式:

             

    好了,举个例子,有数据集

    dataset = [[1, 1, ‘yes’],

                      [1, 1, ‘yes’],

                      [1, 0, ‘no’],

                      [0, 1, ‘no’]

                      [0, 1, ‘no’]]

             最后一列yes or no就是类别标签,dataSet有两类,p(yes)=2/5,p(no)=3/5,带入公式求得香农熵H=0.97095。熵越高,则混合的数据越多,所以对于决策树来说,熵越小,从无序变到有序度越大,信息增益越大。如果将dateSet的第一行类别变成[1, 1, ‘other’],则计算的熵H=1.37095,混合度增加。

             知道怎么选特征值了,接下来的具体做法是:对每个特征划分数据集的结果计算一次信息熵,选择信息增益最大的特征。

             选好最佳特征后就分类,该特征有几种值就分几个子集(树枝),分完之后呢?如果子集的数据都是同一种类别就到此为止,如果不是同一种类别就接着划分子集,利用同样的方法:计算熵,选最好的特征,划分,直到每个子集都是同一类为止。用递归方法。还有一个递归结束条件:所有特征都用完了,还没有到子集类别相同的情况(选数目多的类别标签作为该子集的类别标签)。所以用递归方法构造决策树两个停止条件:左右子集都是相同类别标签,所有特征都用完了。这也是决策树算法的一种——ID3(每划分一次得到的两个子集都除去了划分时用到的特征,特征数目逐渐减少)。另外还有其他构造决策树算法(如C4.5和CART),这两种并不是在每次划分数据分组时特征数目都减少。

             以上是思路,那通过python函数代码构造出来的决策树是什么形式呢?是一个字典形式,如:{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}。'no surfacing'、'flippers'对应dataSet的特征属性名,每个键的值(字典)都是根据键(特征)划分的子集。这种形式看起来不明显,但是可以用这种形式通过Matplotlib绘制成图形树看起来就明了了。代码资源里都有体现。

            至此一堆数据(数据集)我们就构造了决策树。

    (二)使用决策树执行分类

            拿到一个新的数据,找到第一个匹配的特征(就是决策树的第一个键名'no surfacing'),比较该特征的值,如果是0(后面直接是‘no’),那么直接就到了叶子节点,叶子节点的类别就是该数据的类别;如果是1(后面又是一个字典型,说明又进入一个子集),需要继续比较下一个特征(下一个子集的关键字:‘flippers’),方法一样,递归,直到找到叶子节点。

    (三)决策树的存储

             为了节省构造决策树的时间,最好是在每次执行分类时调用已经构造好的决策树。方法是使用Python模块的pickle序列化对象,序列化对象可以在磁盘上保存对象,并在需要时读取出来。任何对象都可以执行序列化操作,决策树的字典对象也不例

    (四)评估算法。至于决策树怎么评估其算法的效率,目前我学到的还是利用数据集中90%数据构造决策树,用10%数据测试分类的正确率。得到正确率如何调整算法改进算法?如果觉得正确率不高那就增加数据集数量吧。

    代码链接:https://download.csdn.net/download/u012494321/10765834

    展开全文
  • 找到一个好的解决方案,他们会一遍又一遍地使用。这些经验是他们成为内行的部分原因。它们 帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。一个熟悉这些模式的 设计者不需要再去发现它们,...
  • 8.3.4 使用通配符找到某个字符串在另一个字符串中起始位置 223 8.3.5 检测字符串相似度 224 8.3.6 获取字符串最左和最右部分 224 8.3.7 检测字符串中字符数或者字节数 225 8.3.8 把字符串一部分替换...
  • 你必须知道495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    2.5 在C 中是否有模拟继承等面向对象程序设计特性的好方法? . . . 7 i 目录ii 2.6 我遇到这样声明结构代码: struct name f int namelen; char namestr[1];g; 然后又使用一些内存分配技巧使namestr 数组用起 来...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    (6)按照系统开发主体面向的对象 国内图书管理系统应用情况 国内Android开发行业市场现状 国内的Android开发还是以应用开发为主,主要分成3类: 为企业开发应用 开发通用应用(Android Market或者其他App Market...
  • B) 图形工具能够极地概括描述一个系统信息,比文字叙述能够更地表达重 要细节 C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用 户之间达成一致需求 D) 图形比文字描述简单、...
  • “window 方案会不会是更好的选择?”,首先想到的是效率问题。 测试效率 一般来说,一个浏览器窗口或者 tab 是独立进程,iframe 则和父窗口共享进程。所以直觉上会认为,在 window ...
  • //根据index值出相应的对象 E set(int index, E element); //设置相应位置的对象 void add(int index, E element); //增加相应位置的对象 E remove(int index); //删除 int ...
  • 或者说要有更好的开发体验,我们应该支持 <code>JSX</code> 或类似的语法,然后通过 babel 插件转换成 <code>h</code> 的函数调用。鉴于本文主题是怎么实现 Virtual DOM,这里就不展开了。 <h4>...
  • 没有系统性研究unity编译器扩展开发,所以就是遇到什么需求就去研究什么需求。之前写过一两次,后来没怎么用就忘记了。...所以我们要在对每一个可交互对象操作之前都要进行判断是否满足可操作的条件...

    没有系统性的研究unity编译器的扩展开发,所以就是遇到什么需求就去研究什么需求。之前写过一两次,后来没怎么用就忘记了。这次开发项目又遇到同样需求,我百度了半天好容易找到答案。心想这次还是记录下来,下次可以直接回顾掌握了。

    一。最近在做仿真教学的内容。涉及到步骤操作检测。比如我们不打开总电源开关,我们无法打开电灯电视机电风扇。所以我们要在对每一个可交互对象操作之前都要进行判断是否满足可操作的条件。我们会在被操作对象上挂上一个我们自写的一个条件限制类,比如LimitSetting,代码如下:

    public class LimitSetting : MonoBehaviour
    {
        public LimitList limits;
     
        public bool CheckLimits()
        {
            //foreach(LimitMembers limit in limits.members)
            //{
            //    if(limit的条件不符合) return false;
            //}
            return true;
        }
    }
    
    [Serializable]
    public class LimitList
    {
        public List<LimitMembers> members = new List<LimitMembers>();
    }
    [Serializable]
    public class LimitMembers
    {
        public StepContrl stepContrl;
        public int RightState;
    }

    当我们将此脚本挂在操作物体上时,Inspector面板如下:

    我们需要几个条件就可以往里添加几个。但是我们可能会觉得这个界面不够直观化,想要做成Button的那种可以点击+添加的那种。如下:

    这时候就需要我们扩展Inspector面板了。代码如下:记住编辑完代码要放在Editor文件夹下才可以在编译器模式下运行。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEditor;
    using UnityEngine;
    using UnityEditorInternal;
    
    [CustomEditor(typeof(LimitSetting))]
    
    public class LimitSettingEditor : Editor
    {
    
        // Use this for initialization
        private ReorderableList m_LimitList;
        private void OnEnable()
        {
            m_LimitList = new ReorderableList(serializedObject,
                serializedObject.FindProperty("limits").FindPropertyRelative("members"),
                true, true, true, true);
            m_LimitList.drawElementCallback += DrawNameElement;
            m_LimitList.drawHeaderCallback = (Rect rect) =>
            {
                GUI.Label(rect, "添加执行条件");
            };
        }
        private void DrawNameElement(Rect rect, int index, bool selected, bool focused)
        {
            SerializedProperty element = m_LimitList.serializedProperty.GetArrayElementAtIndex(index);
    
            rect.y += 2;
            rect.height = EditorGUIUtility.singleLineHeight;
            EditorGUI.PropertyField(new Rect(rect.x, rect.y, 200, EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("stepContrl"), GUIContent.none);
            EditorGUI.PropertyField(new Rect(rect.x + 200, rect.y, 100, EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("RightState"), GUIContent.none);
        }
        public override void OnInspectorGUI()
        {
            serializedObject.Update();
            m_LimitList.DoLayoutList();
    
            serializedObject.ApplyModifiedProperties();
        }
    }

    其实这个功能的用处不是很大,也不是必须。如果时间充裕可以自己编辑下,为了项目的美观化,直观化。

    二。当我们在面板上添加字段值的时候,我们发现一些Object上根本不需要添加一些对应的信息。就直接为空了。当面板对外公开的字段较多时我们就容易花了眼填错行。这时候我们就可以根据各自需求显示自己需要的字段属性。比如我们写一个Test数据类脚本,代码如下:

    public class Test : MonoBehaviour
    {
        public bool UseProperty = false;
        public float speed = 0.5f;
        public string Name = "";
    
    }

    当我们在面板点击UseProperty为true时,才会显示speed和Name。当为false时,隐藏speed和Name。代码如下:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEditor;
    
    [CustomEditor(typeof(Test)), CanEditMultipleObjects]
    public class TestEditor : Editor {
    
        static SerializedProperty UseProperty, speed, Name;
    
        private void OnEnable()
        {
            UseProperty = serializedObject.FindProperty("UseProperty");
            speed = serializedObject.FindProperty("speed");
            Name = serializedObject.FindProperty("Name");
        }
    
        public override void OnInspectorGUI()
        {
            serializedObject.Update();
            EditorGUILayout.PropertyField(UseProperty);
            if (UseProperty.boolValue==true)
            {
                EditorGUILayout.PropertyField(speed);
                EditorGUILayout.PropertyField(Name);
            }
            serializedObject.ApplyModifiedProperties();
        }
     }

    同样此代码要放到Editor文件夹下才会在编辑器环境下运行。

    展开全文
  • void Vsbak::init_comboBox() // 找压缩好的文件 Combobox 下拉菜单 { /* * 1. 用一个对象进入dir-dest目录下 * 2. 过滤掉包含后追的文件 * 3. 获取被过滤的文件理解 */ // find all backup.tar....
  • 易学C++,C++入门

    2009-12-06 14:30:11
     6.1.2 如何使用系统造好的“工具”   6.2 打造自己的“工具”   6.2.1 C++函数的声明   6.2.2 函数的定义   6.2.3 函数是如何运行的   6.2.4 返回语句——return   6.2.5 关于主函数   6.2.6...
  • o 3.5 在 C 中是否有模拟继承等面向对象程序设计特性的好方法? o 3.6 我遇到这样声明结构代码: struct name { int namelen; char namestr[1];}; 然后又使用一些内存分配技巧使 namestr 数组用起来好像有多个...
  • 甚至在代码里都不能很好的区分哪个事件属于哪个矩形... 所以无疑,我们必定要引入在Canvas内“面向对象”的编码方式。在Flash AS 和传统DOM 的结构里,都默认集成了基础的对象系统。 AS里面有<code>...
  • 存储系统为了更好的服务,经常会保证高优先级的任务优先执行。当多个作业或用户访问存储系统时,如何保证优先级和公平性 1.3.1 最大频率栈 1.3.2 给定一个链表,删除链表的倒数第N个节点,并且返回链表的头结点 ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第九章 面向对象的程序设计 .101 9.1 面向对象的基本概念.101 9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110 第十章 类 .112 10.1 类 声 明 .112 ...
  • 全面覆盖dba行业知识,并将理论与实践相结合,旨在为初中级dba提供高效运行数据库所需方方面面知识,帮助他们从oracle公司发行大量资料中找到自己需要信息。书中内容主要集中在大多数企业常见问题之上,如...
  • C#微软培训资料

    2014-01-22 14:10:17
    第九章 面向对象的程序设计 .101 9.1 面向对象的基本概念.101 9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110 第十章 类 .112 10.1 类 声 明 .112 ...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

怎么找到条件好的对象