自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (2)
  • 收藏
  • 关注

原创 java学习之二-数组

数组一、java中数组定义格式1、int [ ] x = new int [5];//也可以int x[ ] = new int [5];如没有指定值,默认值为0。2、int[ ] arr = new int[ ]{3,1,6,78};//也可以int[ ] arr = {3,1,6,78};二、数组中的操作1、获取数组的长度int[ ] a

2017-07-09 10:26:13 455

原创 java学习之一java基本知识

java基本知识一、java中的名称规范java中的标识符由大小写字母,数字以及_$组成,其中标识符不能以数字开头。此外,java中是严格区分大小写。1、包名:多单词组成时,所有字母都小写。如:xxxyyyzzz2、类名接口名:多单词组成时,所有单词的首字母大写。如:XxxYyyZzz3、变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。如:

2017-06-20 22:35:51 423

原创 linux命令-cat

cat命令主要功能cat主要有三大功能: 1、一次显示整个文件: cat  filename2、从键盘创建一个文件: cat  > filename  此时只能创建新文件并编辑,但是不能编辑已有文件;如果cat > 已有文件,则该文件被覆盖。在ubuntu系统中,cat > file后,就可以对file文件编辑了,编辑完直接CTRL + C返回命令行模式

2016-09-15 00:29:48 699

原创 vim编辑器的使用

vim编辑器的使用1、打开文件tanvim tan在某个文件目录下,执行vim tan,若该目录下存在tan文件,则表示打开该文件;若不存在,则表示新建一个tan文件。2、编辑vim tan通过该命令打开tan文件后,按上按键I,此时进入VIM编辑界面,然后在该界面编辑相应的内容。等编辑完成后,CTRL + C退出编辑状态。3、

2016-09-14 22:45:30 502

原创 如何从零开始写shell脚本

如何从零开始写shell脚本 一、前言 为什么我们需要使用shell 脚本?难道我们之前学习的c/c++不能够完成shell脚本语言的功能吗,为什么我们还需要学习shell脚本?学习shell脚本最大的好处是能够轻易处理文件与目录之类的对象,如果同样此类任务,利用c++或者c,则编写程序很麻烦。尽管shell脚本语言的效率通常不如编译型语言,但是一般来说,够用了。二、编写一

2016-09-13 22:30:09 3236 1

原创 ubuntu中root和普通用户切换

ubuntu中root和普通用户切换ubuntu登录后,默认是普通用户权限,那么普通用户权限和root权限如何切换呢,下面总结下它们之间如何切换。普通用户切换到root用户登录ubuntu后,按上组合键CTRL+ALT+T进入终端界面,一般终端界面默认为普通用户权限模式,如何从普通用户进入root用户,有如下方法:1、按上su,然后按照提示输入相应的root

2016-08-07 17:59:59 67689 3

原创 线程间的同步

线程间的同步之前讲到通过互斥对象进行线程间的同步,下面介绍其他的几种方式来保持线程之间的同步。一、事件对象事件对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件。当人工重

2015-12-08 21:34:48 454

原创 基于面向连接和无连接的socket编程

基于面向连接的socket编程基于面向连接的socket编程就是基于TCP的socket编程。基于TCP的socket编程的服务器器端程序和客户端程序的流程如下:服务器端程序1、创建套接字(socket);2、将套接字绑定到一个本地地址和端口上(bind);3、将套接字设为监听模式,准备接受客户请求(listen);4、等待客户请求到来;当请求到来后,接受连接请

2015-12-01 17:17:29 5291 1

原创 网络编程之初探

网络编程之初探网络编程,顾名思义,什么是网络呢?计算机网络是相互连接的独立自主的计算机的集合。下面介绍下网络的基本知识: ISO/OSI七层参考模型从上到下依次为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。物理层:提供二进制传输,确定在通信信道上如何传输比特流。数据链路层:提供介质访问,加强物理层的传输功能,建立一条无差错的传输线

2015-10-30 21:15:33 459

原创 基于互斥对象的线程间同步

线程间的同步不同的线程对同一资源进行访问时候,会出现一些意想不到的错误,此时我们需要线程间的同步。线程间的同步就是保证一个线程在访问一种资源的时候,其他的线程在这个时间段之内不能够对这个资源进行访问。保证线程间同步的一种方法是通过互斥对象。创建互斥对象的函数为CreateMutex,CreateMutex的函数原型如下:HANDLE CreateMutex(LPSECU

2015-10-29 11:19:26 583

原创 基于windows的多线程编程初步介绍

基于windows的多线程编程基于windows下的多线程编程,首先我们需要了解创建线程的函数CreateThread,CreateThread将在主线程的基础上创建一个新线程。函数原型:HANDLE CreateThread(LPSECURITY_ATTRIBUTElpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_R

2015-10-29 09:56:50 1276

原创 不使用库函数将整数转化为字符串

不使用库函数将整数转化为字符串实现代码如下:void int2str(int n,char *str){ char temp[10]=""; int tem = n < 0 ? -n:n;// int i = 0; int j = 0; while(tem) { temp[i++] = (tem % 10) + '0'; tem = tem/10;

2015-10-15 21:19:48 550

原创 cin、cin.get()、cin.getline()、getline()

cin、cin.get()、cin.getline()、getline()下面介绍下c++中的这些函数的区别与联系一、cina、输入数void main(){ int a,b; cin>>a>>b; cout<<a + b<<endl;}输入:4空格5回车  b、输入字符串void main(){ char a[18]; cin>>a;

2015-10-13 21:49:09 490

原创 getchar、getch、getche

getchar、getch、getche小结

2015-10-13 20:43:47 703

原创 const的一些常用用法

const的一些常用用法c++类中相关const的恩怨情仇:一、类中成员函数后面加上constvoid function() const{}//类中的成员函数或者在类中先声明,然后在类外定义,如下所示:void function() const;void A:: function() const{}对上述相关函数做如下三点说明:首先,此函数不能对类

2015-10-12 16:31:33 481

原创 判断字符串是否是回文的代码实现

判断字符串是否是回文的代码实现回文字符串的含义-简单的来说,是字符串以中心对称的字符是相同的。基于递归方法的实现int isstringPald(int low,int high,const char* str,int len){ if(len == 0 || len ==1) { cout<<"该字符串是回文字符串"<<endl; return

2015-10-11 22:03:46 1597

原创 c中文件的读取操作

c中文件的读取操作“文件(file)”:所谓“文件”是指一组相关数据的有序集合。数据以文件的形式存放在外部介质(一般是磁盘、磁带、光盘等)上,操作系统中是以文件为单位对数据进行管理的,以文件名作为访问文件的标识。C语言把文件看作一个字节序列,即由一连串的字节组成。根据文件中的数据组织形式,数据文件可分为ASCII码文件和二进制文件。ASCII码文件,又称为“文本文件

2015-09-30 20:44:18 7821

原创 二维动态数组的删除和创建

二维动态数组的删除和创建c++版本:动态创建以及删除一个二维数组float temp[n][m]int main(void){ int n = 10; int m = 5; float **temp = new float*[n]; for(int i = 0; i < n;i++) { temp[i] = new float[m]; } for(int i

2015-09-24 13:54:20 4731

原创 图的定义

图的定义以及相应的术语图的定义:是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图中顶点的集合,E是图中边的集合。注意:线性表中我们把数据元素叫做元素,树中我们把数据元素称之为结点,图中我们相应的把数据元素称之为顶点。图结构中,任意两个顶点之间都可能有关系,顶点之间的逻辑关系用边来表示。无向图和有向图:

2015-09-20 19:52:06 847

原创 排序算法之希尔排序

希尔排序希尔排序又称为缩小增量排序,是一种插入排序,是直接插入排序的升级版。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因

2015-09-19 21:16:51 444

原创 二叉树的建立和遍历算法

二叉树的建立和遍历算法

2015-09-17 09:39:25 768

原创 二叉树的存储结构

二叉树的存储结构二叉树的存储结构也包含顺序存储结构和链式存储结构。二叉树的顺序存储结构就是用一维数组存储二叉树中的各个结点,并且结点的存储位置能体现结点之间的逻辑关系。具体存储方法就是在一维数组中存储二叉树中的各个结点,每个结点对应的数组下标为二叉树中按层序遍历的编号,此外数组中下标为0存放结点的个数。对于按照层序遍历过程中不存在的结点,在其对应的数组中存放-1等特殊标志表示这个结

2015-09-16 09:11:09 580

原创 二叉树(一)

二叉树小述二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两颗互不相交的,分别称为左子树和右子树的二叉树组成。特点:1、

2015-09-16 08:36:13 465

原创 标准c中的字符串处理函数

strcat函数原型: char * stcat(char* str1,const char* str2)函数功能:把字符串str2的头部连接到str1的尾部,然后返回新的字符串的头部指针strcat函数的实现代码如下:char* my_strcat(char *str1,const char *str2){ assert(str1 != NULL && str2 !=

2015-09-13 20:30:11 608

原创 写一个标准的c程序需要包含的头文件

写一个标准的c程序需要包含的头文件这里说的写一个标准的c程序,真的就是一个标准的c程序,不能包含一点c++编程的习惯,这样为了以后编程的规范。之前一直不注意这个问题,今天做华为的机试的时候,就吃到了苦头。一、包含#include stdio -"standard input & output" (标准输入输出),源代码中如用到标准输入输出函数时,就要包含这个头文

2015-09-12 22:06:24 5108

原创 求一段字符串中连续出现次数最多的单个字符和分解字符串

求一段字符串中连续出现次数最多的单个字符int main(){ char num[MAX] ; printf("请输入一个字符串\n"); scanf("%s",num); char temp ;//记录当前出现最多次数的连续字符 int length = 0; int curlen;//记录当前字符出现的连续次数 int begin = 0;//开始的位置 in

2015-09-11 21:02:26 1259

原创 面试题之求两个字符串的最大公共子串

面试题之求两个字符串的最大公共子串字符串的题目感觉真的好难,关于字符串的题目,需要弄懂题意的思路,思路对了,编程就ok了(好像是废话哦)。下面分析下求两个字符串的最大公共子串的解题思路。首先我们确定一个基准串和查找串,基准串就是两个字符串中长度长的字符串,查找串就是那个短的串。我们从查找串的头部开始,在基准串的尾部开始查找,若查到了,就给数组sign[j]赋值,j是基准串的下标,表示基

2015-09-10 16:14:15 5943 1

原创 面试题初级-求字符串最后一个单词的长度和判断ip地址的合法性

求字符串最后一个单词的长度int clacuate(const char* str)//求字符串最后一个单词的长度{ int num = 0; while(*str!='\0') { str++; } while(*str!=' ') { str--; num++; } num = num -1; return num;}判断ip地址是否合法

2015-09-09 11:21:26 609

原创 数组的引用和指针的引用

数组的引用和指针的引用数组的引用通过引用传递数组,和其他类型一样,数组形参可声明为数组的引用。如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。在这种情况下,数组大小成为形参与实参类型的一部分,编译器检查数组实参的大小与形参的大小是否匹配。注意:数组引用中,数组大小成为形参与实参类型的一部分,则形参和实参中的数组大小要一致。否则编译通不过。v

2015-09-09 09:00:08 2097 1

原创 用数组作为函数的参数

数组作为函数的参数数组名作为函数的形参如果函数的实参是数组名,则形参肯定也为数组名或者指针变量。且实参数组和形参数组类型必须一致。函数实参是数组名,即是把数组首元素的地址传递给形参。数组名作函数实参时,改变形参数组元素的值将同时改变实参数组元素的值。实际上,声明形参数组并不意味着真正建立一个包含若干元素的数组,在调用函数时也不对它分配存储单元,只是用array[]这样的

2015-09-08 22:41:39 6731

原创 2015腾讯笔试题-基于递归的格雷码生成

基于递归的格雷码生成生成1位的格雷码为:01生成2位的格雷码为:00011110生成三位的格雷码为:000001010011111110101100从中我们可以看出规律,生成n位的格雷码是在n-1位格雷码的基础上添加0和1。n-1位的格雷码前一半是按照0101依次添加,后一半是按照1010依次添加,因为我们观察可知,格雷码

2015-09-08 16:20:53 905

原创 c++之模板

c++之模板引入模板的作用:避免代码的重复,编写脱离数据类型的通用模板。模板是对类型进行参数化的工具,是c++中支持参数化多态的工具。模板的分类:函数模板、类模板下面依次介绍函数模板和类模板。函数模板:template or template //模板声明格式返回值类型 函数名(模板形参表) { 函数体}函数调用:函数名(模板

2015-09-07 21:49:58 419

原创 面试之简答题

带参数的宏与内联函数之间的区别答:宏定义是C语言提供的三种预编译处理功能的一种。三种分别是文件包含、宏定义、条件编译。格式: #define 标识符 字符串 其中的标识符就是所谓的符号常量,也成为宏名。宏是在预编译期间简单替换(是在预处理完成的),将宏名替换为字符串,也叫作宏展开。说白了,宏就是简单的字符串替换。重要的一点是,对于带参数的宏,不作任何类型和语法的检查。内联函数:

2015-09-07 21:46:59 388

原创 树的存储结构

树的存储结构树的结构很强大,操作系统的文件管理、操作系统的目录管理、网络系统中的域名管理、数据库系统中的索引都利用了树的结构。树的存储结构有以下三种常见的表示法:1、双亲表示法 2、孩子表示法 3、孩子兄弟表示法 双亲表示法-以双亲作为索引关键词的一种存储方式。双亲表示法的存储结构如下;#define MAX_TREE_SIZE 100typedef int E

2015-09-06 17:12:33 515

原创 树的基本知识前传

树的基本知识之前我们讲述的线性表、栈和队列都是一对一的结构,但是实际中的实例往往没有那么简单,比如存在很多一对多,多对多的结构。我们现在讲的树就是一种一对多的结构。后面我们要讲的图是一种多对多的结构。树是n(n>=0)个结点组成的有限集合T。当n=0时称为空树,在任意一颗非空树中,有且只有一个根节点。另外,当数的结点大于1时,子树的个数是没有限制的,但它们互相是一定不会相交的。

2015-09-06 15:36:12 418

原创 静态分配和动态分配

静态分配和动态分配在讲述这个之前我们分享一段程序,从这个程序中我们来思考下为什么,类似的程序最后的输出结果不一样:char* stackMalloc(){ char str[] = "yelllo"; return str;}char* heapMalloc(){ char *str = "helllo";// return str;}int main(){ ch

2015-09-05 20:03:04 6925

原创 字符串和字符数组的区别以及sizeof和strlen的区别

字符串和字符数组的区别字符数组顾名思义就是存放字符类型的数组呗, char str[5] ; printf("元素%d\n",sizeof(str));//5 printf("元素%d\n", strlen(str));//19 for(int i = 0; i < 5;i++) { str[i] = 'A'+i; } for(int i = 0; i < 5;i

2015-09-05 09:50:16 4194

原创 编写一个函数,它的返回值是主串中第一个字符子串的位置以后的所有字符

它的代码如下:#include#includeusing namespace std;const char* strnew(const char*string , const char* substr){ int allLen = strlen(string);//字符串的长度 int subLen = strlen(substr);//子串的长度 int index = 0;

2015-09-04 16:31:52 1452

原创 求一段字符串中出现的相同且长度最长的字符串

求一段字符串中出现的相同且长度最长的字符串int main(){ string str,substr; string str1; int t3; int t1 = 0; int t2 = 0; cout<<"请输入字符串"<<endl; int maxnum = 0; int count = 0; cin>>str; int len = str

2015-09-04 10:39:03 1702

原创 求一个字符串中连续出现次数最多的子串

求一个字符串连续出现次数最多的子串//求一个字符串中连续出现次数最多的字符串pair calcuate(const string& str){ int len = str.length(); vectorsubstrs; int count = 1; int max = 1;//记录最大出现的次数 string str1; int i , j; for( i = 0;

2015-09-03 17:27:30 520

基于mfc的视频播放器的制作

基于vs2010的用mfc制作的视频播放器 可以快进 快退 快放 慢放 播放暂停 还有进度条等等功能

2014-08-26

人脸检测程序

真不错 值得你拥有 是关于人脸检测的代码 入门级的 很简单哈 不要嫌弃哈

2013-11-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除