02 2020 档案

摘要:案例1 张牙舞爪的if-else if(type == "mp4"){ isValid = true; }else if(type == "txt"){ isValid = true; }else{ .... } 用数组装变化的数据 string[] validTypeArray = {"mp4", 阅读全文
posted @ 2020-02-27 11:13 天凉好个秋秋 阅读(267) 评论(0) 推荐(0)
摘要:专门用来描述数据的数据,这就是元数据。 json xml 元数据带来的服务的例子: ORM的框架实现,model层的代码能自动生成,肯定需要元数据的支持 反射。每种语言的反射能力有强有弱,强弱的根本原因就在于你事先编译好的元数据够不够用。 在自动生成代码领域,元数据用得会比较深入。 阅读全文
posted @ 2020-02-26 14:44 天凉好个秋秋 阅读(299) 评论(0) 推荐(0)
摘要:实体对象——主角 实体对象是主角,大家都认得出,不会和别人搞混。比如,Person对象很有可能属于实体对象,一般情况下,Person会有一个唯一的ID标识对应着数据库的主键,每个Person数据都是独一无二的,很重要,少一个就出bug了。 值对象——配角或道具 例如,演员拿着一只钢笔写字,我们不会关 阅读全文
posted @ 2020-02-26 14:21 天凉好个秋秋 阅读(354) 评论(0) 推荐(0)
摘要:前言 数据容器就是装载各种容器的数据结构,比较实用的两种:数组和容器。 数组 两大特点: 每个数组都有一组从0开始的下标,可以有着快速定位的能力 排序和数组有密切的关系,数组的快速定位能力,能帮助很多其他数据结构来优化排序效率 散列表 散列表本质上就是一个由链表组成的数组。通过散列算法,使它同时具备 阅读全文
posted @ 2020-02-26 14:05 天凉好个秋秋 阅读(153) 评论(0) 推荐(0)
摘要:变量的生命周期,大概的意思就是这个变量的有效期。 神仙阶层:global和static数据,能拥有和程序世界等长的 亲信部队:分配在栈区(空间不大,一个线程对应一个),栈区空间的分配和回收由操作系统直接接管。 int function(int a ){ int count = 10; } 这个cou 阅读全文
posted @ 2020-02-25 21:04 天凉好个秋秋 阅读(278) 评论(0) 推荐(0)
摘要:前言 写任何程序,用得最多的数据类型无非就是这3种:string、int 和 bool。 string类型:人机沟通的桥梁 我们都知道计算机的内部只认识二进制,那么对于计算机来说,一个字母“S”和一条弯曲的小蛇有什么区别呢?可如今“S”被编了码,计算机就能认出它了。string类型的数据由若干字符组 阅读全文
posted @ 2020-02-25 10:22 天凉好个秋秋 阅读(313) 评论(0) 推荐(0)
摘要:坏耦合的原因 1. 依赖他人 例1. void SaveMoney(float money); void WithdrawMoney(float money); 如果有假币出现,那么存钱函数SaveMoney就提前处理了,并不会存进去,WithdrawMoney函数从来没有遇到过假钱,而它并没有处理 阅读全文
posted @ 2020-02-20 15:04 天凉好个秋秋 阅读(322) 评论(0) 推荐(0)
摘要:强化耦合 1.将隐式的关系变成显式的关系 例如:在界面的不同位置要显示不同的图形,位置和图形是一对一的关系,于是代码如下: for(int i = 0;i<count ;i++){ Draw(Shape[i], position[i]); } 分析: 因为连个数组元素之间的对应关系,并没有得到正式承 阅读全文
posted @ 2020-02-19 14:01 天凉好个秋秋 阅读(219) 评论(0) 推荐(0)
摘要:什么是耦合 我们总是听到说这有耦合,那要解耦。耦合看起来很高大上的名词,实际上耦合代表的就是各种元素之间的依赖性和相关性。 耦合的种类 数据之间的耦合;例如: class Person{ string name; int age; } name和age属于同一个类里面,他们就产生了耦合 函数之间的耦 阅读全文
posted @ 2020-02-19 12:19 天凉好个秋秋 阅读(635) 评论(0) 推荐(0)
摘要:程序世界的两个基本元素 1.程序世界两个基本元素是代码和数据; 2.数据和代码相互伪装: 有的看起来是代码的,实际上是数据 。例如:bool flag = true; true属于代码,这里是数据 有的看起来像数据,却是代码 有的代码在特定时候,可以充当数据。 函数指针是一种特殊的数据,这种数据不会 阅读全文
posted @ 2020-02-18 16:15 天凉好个秋秋 阅读(945) 评论(0) 推荐(0)
摘要:(l+r)/2 l + (r-l)/2 阅读全文
posted @ 2020-02-17 22:57 天凉好个秋秋 阅读(713) 评论(0) 推荐(0)
摘要:1.为什么要引入索引堆 普通堆在操作的时候有两个问题: 在堆中,构建堆、插入、删除操作都需要大量的交换操作,如果结点存储的是比较复杂的数据结构,那么消耗的比较多 例如有一组进程,如果某个进程id为7,想提高它的优先级,由于堆的性质,会不断调整,就难以去找到它了。 2.索引堆优化了什么 索引堆将引入索 阅读全文
posted @ 2020-02-17 21:44 天凉好个秋秋 阅读(164) 评论(0) 推荐(0)
摘要:1.XML 与JSON 在不同的语言之间交换数据 阅读全文
posted @ 2020-02-17 16:45 天凉好个秋秋 阅读(145) 评论(0) 推荐(0)
摘要:恢复内容开始 一、为什么要引入堆排序 在日常生活中,很多场景需要优先队列。 应用场景一:动态请求。比如队伍中不断的入队和出队,并且优先级是动态调整,此时用堆比较合适。 应用场景二:M个数字中求前N个大的数。 什么是优先队列? 普通队列是先进先出,后进后出;优先队列是出队顺序和入队顺序无关,与优先级有 阅读全文
posted @ 2020-02-17 16:43 天凉好个秋秋 阅读(225) 评论(0) 推荐(0)
摘要:一、分治算法 分而治之,即把原问题分割成同等结构的子问题,之后针对子问题逐一解决。 归并排序更关心的是治。 快速排序更关心的是分,如何均匀分的问题,它有一个pivot,如何合理的均分。 二、分治算法应用 求逆序数 1. 什么是逆序数? 排在前面的元素比后面大。例如:序列 3 5 6 8 1 ;8排在 阅读全文
posted @ 2020-02-15 21:28 天凉好个秋秋 阅读(141) 评论(0) 推荐(0)
摘要:一、O(nlogN)和 O(n^2)的时间效率对比 二、归并排序的实现过程 过程:分组,组内排序 法一:递归实现 //将arr[l...mid]和arr[mid+1...r]两部分进行归并template<typename T>void __merge(T arr[],int l,int mid,i 阅读全文
posted @ 2020-02-15 15:39 天凉好个秋秋 阅读(149) 评论(0) 推荐(0)
摘要:一、选择排序 //选择排序 O(n^2) void selectSort(int arr[],int n) { for(int i = 0;i < n; i++){ int minIndex = i; //寻找 [i,n]的最小值 for(int j = i + 1; j < n; j++){ if 阅读全文
posted @ 2020-02-14 14:57 天凉好个秋秋 阅读(253) 评论(0) 推荐(0)
摘要:1.定义 运算符重载是通过创建运算符重载函数实现的。运算符重载函数来实现的。运算符重载函数可以是类外定义的普通函数,也可以是类的成员函数或友元函数。 第一种方式 1 Complex operator+(Complex om1,Complex om2){ 2 Complex temp; 3 temp. 阅读全文
posted @ 2020-02-13 22:48 天凉好个秋秋 阅读(203) 评论(0) 推荐(0)
摘要:1.多态性 用一个名字定义一个不同的函数,这些函数执行不同却相似的操作,这样就可以用同一个函数名调用不同内容的函数。 2.程序的实现 一个源程序经过编译、连接,成为可执行文件的过程是把可执行代码联编在一起的过程。其中运行之前就完成的联编称为静态联编,而在程序运行时才完成的联编叫动态联编。 静态联编是 阅读全文
posted @ 2020-02-12 22:42 天凉好个秋秋 阅读(1432) 评论(0) 推荐(0)
摘要:1.使用原因 类的私有成员只能通过它的成员函数来访问。但是有的时候需要类的外部访问类的私有成员(或者保护成员)。为此,需要一种途径,在不放弃私有成员数据安全性的情况下,使得一个普通函数或者类的成员函数就可以访问某一类中的私有、保护成员。 c++中的友元为数据隐藏这堵不透明的墙开了一个小孔,外界可以通 阅读全文
posted @ 2020-02-12 16:09 天凉好个秋秋 阅读(254) 评论(0) 推荐(0)
摘要:1.模板的概念 c++允许同一个函数名定义多个函数,这些函数的参数个数和参数类型不同。在c++中,确实可以通过重载这些函数使他们有相同的函数名。但还是不得不为每个函数编写一组代码。模板是实现代码重用机制的一种工具,他可以实现代码参数化,即把类型定义为参数,从而实现了代码的重用。 2.函数模板 在te 阅读全文
posted @ 2020-02-12 11:06 天凉好个秋秋 阅读(154) 评论(0) 推荐(0)