- 博客(25)
- 资源 (1)
- 收藏
- 关注
转载 一篇很好的EDP入门介绍文章——了解AUX,PSR,ASSR 以及EDP版本的差异
嵌入式DisplayPort(eDP)系视讯电子标准协会(VESA)针对行动装置应用,所制定的新一代面板介面,其不仅传输率更胜传统的低电压差动讯号(LVDS)介面,最新1.4版规格更加入许多降低系统功耗的新功能,可望加速扩大eDP在行动装置市场的渗透率。个人电脑产业针对嵌入式显示面板的使用需求,于2008年首次发表一个新的影像传输介面标准--嵌入式DisplayPort,又称eDP。eDP逐渐...
2019-05-11 11:34:04
12876
2
转载 面向对象重写(override)与重载(overload)区别
一、重写(override)override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。重写(覆盖)的规则:1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private
2016-03-24 10:54:37
4586
原创 C/C++程序设计基本概念
for循环的执行顺序for循环的执行顺序用如下表达式:for(expression1;expression2;expression3){ expression4;}执行的顺序应该是:1)第一次循环,即初始化循环。首先执行表达式expression1(一般为初始化语句);再执行expression2(一般为条件判断语句),判断expression1是否符合exp
2016-03-23 22:06:23
405
原创 文本中字符个数统计
编程实现读取文本,计数文本中内容字符数,不计空格、标点和制表符等。初试写程序,请指正。#include #include #include using namespace std; int main(){ ofstream wfile; ifstream rfile; //文件名称 string filename="123.txt";
2016-03-21 21:24:54
2377
原创 智能指针的理解
C++提供了4种智能指针用于对分配的内存进行自动释放,这些智能指针如下:auto_ptr、unique_ptr、shared_ptr、weak_ptr。其中auto_ptr在C++98标准引入,后三种在C++11标准中加入。而auto_ptr已经被C++11所摒弃,建议使用后三种智能指针,这4种智能指针使用模板(template)实现。C++智能指针是行为类似于指针的类对象。它使用
2016-03-21 20:42:24
560
原创 SQL基本知识
RDBMS是什么?RDBMS代表关系数据库管理系统。 RDBMS是SQL的基础,对于像MS SQL Server,IBM DB2,Oracle,MySQL和Microsoft Access等所有现代数据库系统。一个关系数据库管理系统(RDBMS)是一个数据库管理系统(DBMS),基于关系模型如通过 E. F. Codd 引入。什么是表?在RD
2016-03-20 15:28:29
366
转载 引用常见问题与多态问题
多态,虚函数,纯虚函数编译:包括编译和链接两个过程。编译部分,是把源文件(代码)转换成机器可以识别的二进制语言,这个过程是针对每一个源文件的。链接,是把编译生成的二进制文件,组合成为一个系统可以执行的可执行文件。这两部分整体也叫编译。也就是说,广义的编译,就是把代码,转换成可执行文件。运行:把编译出来的可执行文件,在系统中运行的过程,称为程序的运行。多态
2016-03-20 10:26:10
1112
原创 C++中有个malloc/free,为什么还需要new/delete?
首先认识C++内部数据类型和非内部数据类型内部数据类型是编译器本来就认识的,不需要用户自己定义。非内部数据类型不是编译器本来就认识的,需要用户自己定义才能让编译器识别运算符使用是否正确,编译器在编译扫描分析时就可以判定库函数是已编译的代码,编译器不会编译检查,由链接器将库同用户写的代码合成exe文件对于非内部数据类型的对象而言,光用maloc/free无法满足动态对
2016-03-19 23:08:46
576
原创 指针与数组不同的存储区域
首先要搞清楚char *str和char str[]char c[] = "hello world";是分配一个局部数组;char *c = "hello world";是分配一个全局数组。局部数组是局部变量,它所对应的是内存中的栈。全局数组是全局变量,它所对应的是内存中的全局区域。字符串常量保存在只读的数据段,而不是像全局变量那样保存在普通数据段(静态存储区),如:char *c
2016-03-19 13:30:33
495
转载 编译时多态VS运行时多态
编译时多态:函数重载实现多态函数重载是这样一种机制:允许有不同参数的函数有相同的名字。具体一点讲就是,假如有如下三个函数:void test(int arg){} //函数1void test(char arg){} //函数2void test(int arg1,int arg2){} //函数3如果在C中编译,将会得到一个名字冲
2016-03-19 11:49:15
312
原创 传递动态内存
传递动态内存:下面5个幻术哪一个能够成功进行两个数的交换?#include using namespace std; void swap1(int p, int q){ int temp; temp=p; p=q; q=temp;} void swap2(int *p, int *q){ int *temp;
2016-03-18 21:35:47
275
原创 指针与引用的区别
1、非空区别任何情况下都不能使用指向空值的引用。一个引用必须总是指向某个对象。因此如果你用一个变量并让它指向一个对象,但是该变量在某些时候可能不指向任何对象,这时应该把变量声明为指针,因为这样可以赋空值给该变量。相反,如果变量肯定指向一个对象,如设计不允许变量为空,这时可以把变量声明为引用。不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针要高。2、合法性区别在使用引用之前
2016-03-18 21:05:48
256
转载 http与https的区别
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。在URL前加https://前缀表明是用SSL加密的。你的电脑与服务器之间收发的信息传输将更加安全。 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用
2016-03-18 10:59:05
216
转载 C/C++程序的内存分配方式
1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个 运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执 行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高, 但是分配的内存容量有限。[3]从堆上分
2016-03-17 10:44:51
344
转载 编程实现strcpy函数功能(非库函数)
已知strcpy的原型是:char *strcpy(char *dst, const char *src);1、实现strcpy函数2、为什么要返回char *3、假如要考虑dst与src内存重叠的情况,strcpy如何实现 1、strcpy函数的实现char *strcpy(char *dst, const char *src) //[1] { ass
2016-03-14 19:34:49
1018
原创 链表的基础操作
链表 链表的创建、插入节点、删除节点等操作比较简单,其代码量适合笔试和面试。 链表是有种动态数据结构,创建链表时,无须知道链表的长度。当插入一个节点时,只需为新节点分配内存,然后调整指针的指向来确保新节点被链接到链表中。内存分配不是在创建链表时一次性完成的,而是每添加一个节点分配一次内存。 单向链表的节点定义如下:struct ListNode{ in
2016-03-14 15:53:44
356
原创 斐波那契数列
斐波那契数列定义为:## 效率不高的解法:long long Fibonacci(unsigned int n){ if (n<=0) return 0; if (n==1); return 1; return Fibonacci(n-1) + Fibonacco(n-2);} 以求f(10)为
2016-03-14 14:46:31
286
原创 类String的构造函数、析构函数和赋值函数
海康威视16年春季校招编程题目题目:编写类String的构造函数、析构函数和赋值函数,已知类String的原型为:class String{ public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~String(void); //
2016-03-13 15:06:37
408
原创 二进制中1的个数的算法
1、普通算法:int BitCount(unsigned int n){ unsigned int c =0 ; // 计数器 while (n >0) { if((n &1) ==1) // 当前位是1 ++c ; // 计数器加1 n >>=1 ; // 移位 } return c ;}一种
2016-03-12 21:33:33
499
转载 C++抽象类
C++抽象类一、纯虚函数定义. 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象
2016-03-12 21:05:39
510
原创 编程实现36进制和10进制之间的相互转换
36进制转换成10进制的方法,以R9和10Y为例R9就是 27 * 36^1 + 9*36^0 = 98110Y 就是 1* 36^2 + 0 * 36^1 + 34*36^0 =133010进制转换成36进制的方法,以1079和52360为例(1079/36^0) % 36 = 35(1079/36^1) % 36 = 29(1079/36^2) 所以
2016-03-12 14:06:27
10781
转载 LINUX中安装和设置VIM
安装VIM1、在命令行敲入“vi”后按"tab"键,可以看到目前系统中只安装了vi和vim.tiny。vim是从VI发展而来的一个文本编辑器,功能更强大。而vim.tiny是vim的精简版,所以,安装vim势在必行。2、ubuntu系统:普通用户下输入命令:sudo apt-get install vim-gtkcentos系统:普通用户下输入命令:
2015-10-31 21:11:24
1576
转载 各种排序算法
一、冒泡排序基本思想是:两两比较相邻记录的关键字,如果反序则交换冒泡排序时间复杂度最好的情况为O(n),最坏的情况是O(n^2) 改进思路1:设置标志位,明显如果有一趟没有发生交换(flag = false),说明排序已经完成改进思路2:记录一轮下来标记的最后位置,下次从头部遍历到这个位置就Ok二、直接插入排序将一个记录插入到已经
2015-10-24 10:35:51
241
转载 虚继承与虚函数
虚继承是为了在多继承的时候避免引发歧义, 比如类A有个就是a,B继承了A,C也继承了A,当D多继承B,C时,就会有歧义产生了,所以要使用虚拟继承避免重复拷贝。 虚函数继承是解决多态性的,当用基类指针指向派生类对象的时候,基类指针调用虚函数的时候会自动调用派生类的虚函数,这就是多态性,也叫动态编联虚函数继承: class A { virtual void fun()
2015-10-21 19:08:05
500
原创 C++中的继承问题
C++中的继承问题在《程序员面试宝典》(第4版)中讲到“在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。”认为是正确的。eg:#includeusing namespace std;class A{protected: int a;};class B:private A{};class C :public B{public:
2015-10-21 17:00:29
296
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人