- 博客(50)
- 收藏
- 关注
原创 视频监控技术概述
视频监控技术发展过程 视频监控技术按照主流设备发展过程,可以分为4个大的阶段,即20世纪70年代开始的模拟视频监控阶段、20世纪90年代开始的数字视频阶段、2000年兴起的智能网络视频监控阶段及2010开始的高清视频监控阶段。 模拟监控阶段的核心设备是视频切换矩阵,数字视频阶段的核心设备是硬盘录像机(DVR)智能网络视频监控时代没有核心硬件设备,系统变得开放而分散,设备包括网络摄像机(
2018-01-24 19:07:23 4627
转载 网络拓扑简介
计算机网络的拓扑结构是引用拓扑学中研究与大小,形状无关的点,线关系的方法。把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构。网络的拓扑结构反映出网中个实体的结构关系,是建设计算机网络的第一步,是实现各种网络协议的基础,它对网络的性能,系统的可靠性与通信费用都有重大影响。 最基本的网络拓扑结构有:环形拓扑、星形拓扑
2018-01-23 17:23:58 889
转载 分布式存储概述
分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。存储系统的关注点关于存储系统,一般我们关注下面几个方面:数据分布与负载均衡数据存储的可靠性与一致性数据访问性能系统容错能力系统扩展能力在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of independent d
2018-01-23 17:08:33 486
转载 人脸识别主要算法原理
主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。1. 基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2. 基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。3. 基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的
2018-01-22 10:30:39 515
转载 如何将传统的摄像机直接对接平台,类似于大华乐橙和海康萤石的方案
需求描述我们经常在做摄像机直播的时候,需要将传统的安防摄像机的音视频直播到公网或者内网的流媒体服务器上,那么,通常情况下我们通过一个外置的对接程序(在同一内网外挂一套程序)将摄像机的视频数据先取到对接的服务程序,再由服务程序将音视频直播流推送到流媒体服务器,这样就能实现简单的摄像机接入平台了,我们可以认为这是一种NVR程序(EasyDarwin开发了一套EasyNVR服务就是这个功能),这
2018-01-22 00:11:39 8237 1
原创 判断计算机处理器大端小端
1、区分大端小端:内存的低地址存放的数据的高位,就是大端存储。 内存低地址存放数据的低位,就是小端存储。2、下面的图可以清晰理解3、C++代码验证大端还是小端存储#include using namespace std;int main(){ int nNum = 0x12345678; char chData = *(char*)(&nNum);
2017-10-09 17:54:56 344
原创 TCP连接和断开过程详解
一、TCP报文简介TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才
2017-10-09 17:40:42 2764
原创 OSI七层网络模型分别是哪七层?各运行那些协议?
应用层DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP ·SNMP · SSH · TELNET · RPC · RTCP · RTP ·RTSP · SDP · SOAP · GTP · STUN · NTP · SSDP表示层HTTP/HTML
2017-10-09 17:26:38 9860 2
转载 高性能IO模型浅析
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(
2017-09-29 15:16:43 297
转载 几种常见的设计模式介绍
几种常用的设计模式介绍1. 设计模式的起源最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了
2017-09-21 00:35:30 681
原创 如何定义一个只能在堆上(或栈上)生成对象的类
在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。 动态建立类对象,是使用new运算符将对象建立
2017-09-14 21:59:50 341
原创 多继承中的构造函数的顺序
(1)任何虚拟基类的构造函数按照它们被继承的顺序构造。(2)任何非虚拟基类的构造函数按照它们被构造的顺序构造。(3)任何成员对象的构造按照它们声明的顺序调用。(4)类自身的构造函数。
2017-09-14 21:49:48 806
原创 C++中的重载、覆盖和隐藏的区别
1.重载是一个类内部实现相同机理的操作,但是操作的对象不同。主要体现在: 方法在同一个类中重载的方法名称相同参数不同(参数的类型不同,参数的个数不同)virtual关键字可有可
2017-09-14 21:01:30 283
原创 统计一个字符串中各字符出现的次数
#include #include using namespace std; int main(){ string str; int ascii[256]={}; cout<<"请输入一个字符串:"; getline(cin,str); for(int i=0; i<str.size(); i++) ascii[(int)str[
2017-09-14 14:41:43 1482
原创 Delete和delete[]的区别
当调用delete的时候,系统会自动调用已分配的对象的析构函数。当我们用new[]分配的对象是基本数据类型时,用delete和delete[]没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说,使用new分配的对象,用delete来释放。用new[]分配的内存用delete[]来逐个释放。c/c++规定,当删除一个指针时,这个指针应指向其首地址。
2017-09-14 11:43:53 374
原创 程序的编译和链接过程
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可加载、可执行代码的过程。将一个.c文件编译链接成.exe文件,需要以下几个步骤:预处理、编译、汇编、链接预处理器:将.c 文件转化成
2017-09-13 15:35:12 379
原创 德拓DATATOM校招C/C++软件研发笔试题
part 1:basic1.你应聘的岗位是什么?写出你对该岗位的理解,并说出你能胜任这份工作的理由2.你研读过那些技术类的书籍?有什么收获?3.Linux的一些命令及参数。4.JSON对象part 2:programming1.编写一个函数,用于统计一个字符串中各字符出现的次数2.精确的计算出10000的阶乘。part3:c++engineer1
2017-09-12 19:33:26 755
原创 厦门美亚柏科信息股份有限公司C/C++笔试题
一、十道选择题数据结构、类、继承、二叉树等。不难。二、问答题1.#include2.构造函数的执行顺序3.复杂指针的声明4.什么是抽象类? 试声明一个抽象类。忘了,没写出来5.声明一个类,只能在堆上内存,不能在栈上。三、改错题c++类方面的。四、编程题1、string类2、写一个函数找出一个整数数组中第二大的数还有
2017-09-12 19:31:19 2670
原创 美乐威c++软件工程师笔试题
1.改错题class BaseClass{public:BaseClass():m_a1(1),m_a2(2){}~BaseClass();public:int GetValue1(){return m_a1;}int GetValue2(){return m_a2;}static int GetValue3(){ return (m_b1+m_a1);}p
2017-09-11 20:56:33 581
原创 烽火星空C++笔试
一、7道选择题,基础C/C++知识,数据结构,重载等。二、基础问答,网络方面的基础知识,DNS和VPN。C++中纯虚函数如何定义,使用时注意什么。多线程死锁问题。三、程序设计,宏定义--数字交换。实现一个取出全路径文件名的文件名部分的函数。编写派生类。四、两道智力题。五、项目总结。
2017-09-11 20:47:59 2800
原创 栈和堆的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类
2017-09-11 20:15:26 286
原创 虚函数和纯虚函数有什么区别
(1)类里如果声明了虚函数,这个函数是实现的,哪怕是空实现,它的作用就是为了能让这个函数在它的子类里面可以被覆盖,这样编译器就可以使用后期绑定来达到多态了。纯虚函数只是一个接口,是个函数的声明而已,它要留到子类里去实现。(2)虚函数在子类里面也可以不重载;但纯虚函数必须在子类去实现,这就像Java的接口一样。通常把很多函数加上virtual,是一个好习惯,虽然牺牲了一些性能,但是增加了面向对象
2017-09-11 17:03:15 801
转载 shell脚本
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、
2017-09-10 21:59:47 238
原创 c/c++易错知识点3(引用和指针)(二)
1.内存访问违规#include using namespace std;int main(){ char a; char *str1=&a; char*str2="AAA"; strcpy(str1,"hello"); cout<<str1<<endl; str2[0]='B'; cou
2017-08-26 10:37:26 434
转载 内存泄漏与内存溢出的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会
2017-08-14 17:14:10 352
转载 Makefile最全教学,学会这些足矣
该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂
2017-08-14 16:21:48 507
转载 Linux下进程间通信的方式有哪些?以及适用情况和优缺点
1.# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正
2017-08-12 15:42:43 783
转载 Lunix平台下c/c++内存泄漏与内存溢出的解决方法
内存泄露专题(Memory Leak) 以下转自IBM 韩 兆兵 (hanzb@cn.ibm.com), 软件工程师, IBM刘 盈 (cdlliuy@cn.ibm.com), 软件工程师, IBM强 晟 (qiangsh@cn.ibm.com), 软件工程师, IBM 由于 C 和 C++ 程序中完全由程序员自主申请和释放内
2017-08-12 10:19:01 1090
原创 编程实现查找两个字符串的最大公共子串 示例:"aocdfe"和"pmcdfa"最大公共子串为"cfd"
#include#include#define none -1int fun(char *str1,char *str2){ char *p1=str1; char *p2=str2; int i,j,temp; if(*str1=='\0'||*str2=='0') return none; for(i=0;i<strlen(str);i++) { temp=0;
2017-08-11 21:08:02 495
原创 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? (第七届蓝桥杯B组
#include int main() { int i,j; for( i=1;i<=100;i++) { for( j=i;j<=100;j++) { if((i+j)*(j-i
2017-08-11 21:05:01 9421 1
原创 创建单链表并赋值,要求遍历能输出1~9
#include #define OK 0#define ERROR -1#define MALLOC_ERROR -2 typedef int ElementType;typedef struct node{ ElementType data; struct node *next; }Node;typedef Node *P
2017-08-11 21:00:38 835
原创 c/c++易错知识点整理3(引用和指针)(一)
1.一般变量引用#include #include using namespace std;int main(){ int a=10; int b=20; int &rn=a; int equal; rn=b; rn=100 equal=(&a==&rn)?1:0;} a=10;b=20;
2017-08-11 19:51:20 392
原创 c/c++易错知识点整理2(预处理,const,static,sizeof)(上)
预处理、const、static与sizeof1.在#define宏中需要把参数小心地用括号括起来。因为宏只是简单的文本替换,如果不注意,很容易引起歧义。 #define SQR(x) (x*x)int a,b=3;a=SQR(b+2); //a=b+2*b+2输出a=11。2.宏参数#define STR(s) #s#define C
2017-08-07 11:02:10 449
原创 MySQL命令语句整理
1. 登录>mysql -uroot -p123456 密码登录MySQL2.查看当前有哪些数据库》mysql>show databases;3.登录mysql -hlocalhost -P3306 -uroot -p123456 主机名 端口 用户名 密码4. 退出 \q5. 显示所有
2017-08-07 10:03:33 435
原创 c/c++易错知识点整理1(c/c++程序基础)
一、c/c++程序基础1.在main函数里局部变量引用优先,c++中可以通过域操作符“::”来直接操作全局变量;2.i=8; printf("%d",-i++); 先打印-i的值,在i++ ,打印-8,而i此时i=9;3.在内建数据类型的情况,i++和++i效率没有区别;4.良好的条件比较语句:(1)bool flag;if(flag);
2017-08-04 10:54:05 627
原创 编写程序,实现strcmp()相同功能myStrcmp()函数
#include int mystrcmp(char *a,char *b); { char *a,*b; while((*a||*b)&&*a==*b) a++,b++; if(*a<*b) return -1; return 1; } int main() { char str1="axCde",str2="AXCde",str3="axCde",
2017-08-03 19:45:42 2412
原创 编写程序,打印出9×9乘法表
#include int main() { int i,j; for(i=1;i<10;i++) { for(j=1;j<10;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n"); } return 0; }
2017-08-03 19:40:15 1759
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人