自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 德州扑克牌手程序

我参加了2015华为软件精英挑战赛,在独立完成代码编写和调试的过程中,自己的编程能力也有了一些进步。现把所有代码分享如下,希望大家能批评指正。项目简介:依据德州扑克规则,使用C++编写牌手程序,参加扑克比赛。 程序语言:C++ 通讯方式:TCP socket通讯 开发工具:g++ 开发环境:Linux操作系统Ubuntu

2015-06-14 17:16:13 1718

转载 java基础经典问题String str=new String("abc")和String str="abc"

首先,我们先来看一下java中变量的语义:     java的变量有两种语义,原始类型的变量是值语义(value),也就是说,你给一个原始类型变量赋值,就改变了这个数据值本身。对象类型的变量是引用语义,也就是说,给一个对象类型的变量赋值只是让它指向另一个对象,但不改变原来引用的那个对象的值。然后,我们了解一下String的特性以及java对于Sting特别的处理方式:《St

2015-09-04 16:10:15 743

转载 详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

一:MAC地址表详解说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。交换机的工作原理交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数

2015-07-10 19:55:05 7482

转载 与IP协议配套的四个协议ARP,RARP,ICMP,IGMP

目录IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMPIP 数据报首部IP数据报首部格式:最高位在左边,记为0 bit;最低位在右边,记为31 bit版本:占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)首部长度:占4位

2015-07-10 19:51:32 1716

转载 TCP/IP协议簇概述

TCP/IP是一个真正的开放式系统。它可以使运行着完全不同的操作系统,由不同厂家生产的各种型号的计算机互相进行通信。TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP的分层网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。TCP/IP模型分为:网络接入层,网络层,传输层(主机-主机层),应用层。  网络接入

2015-07-10 19:49:11 1134

转载 读书笔记----深入理解计算机系统

引言深入理解计算机系统,对我来说是部大块头。说实话,我没有从头到尾完完整整的全部看完,而是选择性的看了一些我自认为重要的或感兴趣的章节,也从中获益良多,看清楚了计算机系统的一些本质东西或原理性的内容,这对每个想要深入学习编程的程序员来说都是至关重要的。只有很好的理解了系统到底是如何运行我们代码的,我们才能针对系统的特点写出高质量、高效率的代码来。这本书我以后还需要多研究几遍,今天就先总结下

2015-07-08 16:45:16 663

原创 STL模板类--数据结构与算法

STL提供了一些模板类,实现了《数据结构》中的一些数据结构类型在写代码时用到栈,队列等数据结构时可以充分利用STL模板类,会发现特别好用。想起C语言中用数组实现栈和队列,简直就是噩梦。C++是世界上最好的语言。。。(just kidding !!!)顺序容器:动态数组vector;deque链表list;关联容器:set/multiset有序值;map/multimap

2015-07-07 22:17:46 814

原创 带括号的四则运算——华为OJ

题目: 输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值 注: 1、表达式只含 +, -, *, /, (, ), 四则运算符 2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况 3、要考虑加减乘除按通常四则运算规定的计算优先级 4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生 5、输入字符串一定是符

2015-07-04 21:16:08 3627

原创 含通配符的字符串匹配问题

题目: 给定两个字符串,求字符串2,在字符串1中的最先匹配结果。字符串2中 可以存在’*’符号,且该符号可以代表任意字符,即字符串2中存在通配符。 例如:输入:abcdefghabef,a*f 输出:abcdef#include<iostream>

2015-06-30 16:07:00 2303

原创 全排列——火车进站问题(华为OJ)

今天发现一个非常好用的函数next_permutation(),利用这个函数这以很容易的列出一组数据的所有排列组合。利用全部排列解决了火车进站问题。

2015-06-29 19:39:20 1727

原创 牛顿迭代法应用——求数的平方根和立方根

牛顿迭代法,从一个值开始,用无限逼近的方式得出结果。#include<stdio.h>#include<math.h>int main(){ double a; double x; scanf("%lf",&a);//求a的平方根和立方根 x = a/2; ////平方根///// while( fabs(x*x-a) > (1e-6) )

2015-06-27 18:19:21 1947

原创 循环链表的应用——约瑟夫环

循环链表的应用——约瑟夫环

2015-06-27 17:21:56 811

原创 整数分解成2的幂的和

这是一道华为机试的初级题,代码很短,但第一次做时怎么也想不明白解法,最后还是用神递归解决了。

2015-06-26 16:43:04 1653

原创 华为OJ——IP地址判断有效性

题目标题:判断输入的字符串是不是一个有效的IP地址 详细描述: 请实现如下接口 bool isIPAddressValid(const char* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false,无效的IP地址

2015-06-25 10:49:18 583

原创 ACM OJ系列之一——数据输入输出

ACM OJ系列之一——数据输入输出

2015-06-24 17:23:23 2267

原创 华为OJ----洞穴逃生

华为OJ——洞穴逃生

2015-06-23 11:47:58 865

转载 cin的错误处理

深入了解cin错误处理机制,深入了解cin.clear/cin.ignore/cin.good/cin.fail等函数  在前一节中我们有几个例子中提到了cin函数出错,以致不再执行读操作(程序8)。而且我们经常会看到程序中会出现cin.clear(),cin.ignore(), cin.fail()等函数。这些函数都是与cin的错误处理有关的。这一节我们来分析一下cin的错误处理机制,并

2015-06-22 15:34:54 1282

转载 cin深度解析

cin很多初学者都认为cin函数是一个很简单的函数,其实不然!cin函数有很多需要了解的知识(比如:cin的返回值是什么,cin提供了哪些成员函数且分别是什么作用,如cin.clear(), cin.ignore(), cin.fail(), cin.good()等等),如果没有很好的掌握,在使用的时候很可能会出问题却不知其原因!而且很多人也确确实实遇到过不少问题,以下是几个简单的例子:

2015-06-22 15:32:16 658

转载 STL中的常用算法

一、非变异算法是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。非变异算法具有极为广泛的适用性,基本上可应用与各种容器。1查找容器元素find它用于查找等于某值的元素。它在迭代器区间[first,last)(闭开区间)上查找等于value值的元素,如果迭代器i所指的元素满足*i=value,则返回迭代器i;未找到满足条件的元素,返

2015-06-21 23:28:17 489

原创 图的应用---最短路径问题 用迪杰斯特拉算法解决 《地铁换乘问题》

图的应用---最短路径问题用迪杰斯特拉算法解决 《地铁换乘问题》代码是在我学习的过程中完成的,也许会有问题,希望大家批评指正。

2015-06-19 22:13:08 7048

原创 图的存储和遍历C++实现

最近在做一些OJ题目时,感觉自己图的应用还不够熟练。所以又翻书看别人的博客复习了一下,现把图的常用内容总结如下:图的常用存储方法有:邻接矩阵和邻接表遍历方法有:按深度遍历(DFS),按广度遍历(BFS)下面的代码都是C++写的,用了一些STL库的容器:邻接矩阵:#include #include  typedefstruct

2015-06-18 16:33:20 4441

转载 DFS与BFS的总结

BFS与DFS的讨论:BFS:这是一种基于队列这种数据结构的搜索方式,它的特点是由每一个状态可以扩展出许多状态,然后再以此扩展,直到找到目标状态或者队列中头尾指针相遇,即队列中所有状态都已处理完毕。DFS:基于递归的搜索方式,它的特点是由一个状态拓展一个状态,然后不停拓展,直到找到目标或者无法继续拓展结束一个状态的递归。         优缺点:BFS:对于解决最短或最少问题特别有效,

2015-06-17 16:24:33 489

原创 二叉树

完全二叉树可用数组存储,非完全二叉树一般用二叉链表存储。下面主要介绍二叉链表的用法:解决二叉链表问题的一般步骤:1.定义节点结构体,包含需要的变量和左右孩子指针。2.用递归的方法构造二叉树。3.遍历(先序,中序,后序三种)。1.定义节点结构体type struct bnode                   // 结点类型{  bnode * lchild ;      /

2015-06-17 11:04:58 1081

转载 Http和Socket区别

1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,

2015-06-16 23:15:31 439

转载 void及void指针含义的深刻解析

void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,

2015-06-15 23:41:50 279

转载 sort和qsort函数的用法

STL里有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件 #include        这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100

2015-06-15 23:37:22 351

转载 istringstream, ostringstream, stringstream用法示例

#include #include #include using namespace std;int main(){    int a, b;    string Str1, Str2;    string Input = "abc 123 bcd 456 sss 999";       //ostringstream 对象用来进行格式化的输出,可以

2015-06-12 15:17:02 340

转载 recv函数的用法详解

recv函数int recv( SOCKET s,     char FAR *buf,      int len,     int flags     );   不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;第三个参数指明buf的长度;

2015-05-23 23:03:12 3117

转载 C++中关于strtok()函数的用法

函数原型:char *strtok(char *s, const char *delim);Function:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。Description:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时      则会将

2015-05-21 23:04:41 401

转载 socket编程原理

1、问题的引入1) 普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然后这个用户进程多次调用“

2015-05-21 20:28:18 986

转载 Linux的SOCKET编程详解

1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(message)、共享存储区(shared memory

2015-05-21 20:27:13 384

转载 socket通信机制

服务器端  一、创建服务器套接字(CREATE)。  二、服务器套接字进行信息绑定(BIND),并开始监听连接(LISTEN)。  三、接受来自客户端的连接请求(ACCEPT),并创建接收进程。  四、开始数据传输(SEND、RECEIVE)。  五、关闭套接字(CLOSESOCKET)。客户机端  一、创建客户机套接字(CREATE)。  二、与远程服务器进行连接

2015-05-21 20:25:13 439

转载 Socket通讯介绍

Socket套接字起源于美国泊克利大学.方便了开发网络应用程序.          TCP面向连接的可靠传输协议,具有数据确认和数据重传机制.保证了发送数据一定能到达通信的对方.对数据完整性要求比较高的场合使用           UPD协议无连接,不可靠的传输协议.不具有数据确认和数据重传机制,对数据完整性要求比较低的场合使用           IP 网络中每台主机都必

2015-05-21 20:21:49 435

转载 linux下socket编程实例

linux下socket编程实例 一、基本socket函数Linux系统是通过提供套接字(socket)来进行网络编程的。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也有一个类似于打开文件的函数:socket(),调用socket(),该函数返回一个整型的socket的描述符,随后的连接建立、数据传输等操作也都是通过该s

2015-05-20 20:11:06 583

转载 C++模板学习(转载)

1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float

2015-05-15 15:50:21 337

空空如也

空空如也

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

TA关注的人

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