自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于tcp的socket编程。

一。server端: #include #include using namespace std; #pragma comment(lib,"ws2_32.lib") void main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2,

2015-10-11 18:04:31 358

原创 auto_ptr,weak_ptr个人理解

1.auto_ptr存在很大的缺陷,因为auto_ptr的拷贝构造函数中会把原来的指针赋值为空,在对原来的进行引用就是非法操作。 例子:auto_ptr p1(p); auto_ptr p2(p);//非法,因为p被f赋值为空。 2.shard_ptr,在智能指针中已经很完美了,但是美中不足的地方,便是在与解决循环引用的问题。 例如: class A {

2015-10-10 23:17:36 468

原创 两个栈实现一个顺序栈

#include #include using namespace std; class STACK{ public:   void Push(int val)   { stackint> temp;   temp.push(val);   while (st.empty() == false)   { if (st.top() >

2015-10-10 23:03:47 624

原创 两个栈实现队列(完整理解)

自己总结了两个栈实现队列的三种方法: 方法1: 入队时候:将元素压入栈s1. 出队时候:将s1的所有元素逐个(出栈并入栈到)s2中;将s1的栈顶元素弹出作为出队列元素。 之后再将s2的所有元素(出栈并入栈)到s1.     实用范围:一次出队列,一次入队列,交替出现的情况。 优化:将s1的元素(出栈并入栈到)s2中,s1的栈底元素不用入栈到深,直接作为出队元素。

2015-10-05 12:12:53 519

原创 二叉树的深度广度遍历

深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。 如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。 如右图所示的

2015-09-17 12:24:55 427

转载 内存对齐规则

首先由一个程序引入话题:  1 //环境:vc6 + windows sp2  2 //程序1  3 #include   4   5 using namespace std;  6   7 struct st1   8 {  9     char a ; 10     int  b ; 11     short c ; 12 }; 13  14 struct st

2015-08-09 21:09:18 279

原创 内存中关于开辟空间,堆,栈,静态区

一个由C/C++编译的程序占用的内存分为以下几个部分  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。  2、堆区(heap) — 一般由程序员分配释放 , 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。  3、全局区(静态区)(static)—,全局变量和静态变量的存

2015-08-09 21:08:24 3346

原创 二叉树的创建及简单操作

#pragma once #include #include #include #include using namespace std; typedef int DataType ; struct BinaryNode { DataType _data; BinaryNode *_left; BinaryNode *_right; BinaryNode(DataT

2015-07-16 15:25:46 323

原创 特殊单链表的一些操作

1,建一个有环单链表: #include using namespace std; #include struct Node { int _data; struct Node *next; }; typedef Node *PList; Node* CreatNode(int x)//创建节点 { Node *tmp

2015-07-15 16:15:09 264

转载 虚函数

//首先让我们来了解类对象的构造顺序。 #include using namespace std; class A { public: A(){ cout "A" << endl; } virtual void PrintfA() = 0; }; class B { public: B(){ cout "B" << endl; } }; class C :virtual

2015-07-15 15:30:15 479

转载 虚函数,虚表

一、虚函数         首先,虚函数的定义为在函数前添加关键字virtual。然后,之所以定义虚函数,是为了实现语言的多态性的特点。         虚函数里面有纯虚函数的玩意。通过直接在虚函数后面添加= 0来实现,举例如下:         virtual void (*Fun)() = 0;         应该注意的是,当一个类中出现了至少一个纯虚函数时,这个类就

2015-07-15 14:57:37 554

原创 单链表常见操作

#include using namespace std; #include struct Node { int _data; struct Node *next; }; typedef Node *PList; void printfback(PList head)//从后面打印 { stack s; Node* begin = head; while

2015-07-15 14:55:26 218

原创 引用计数板的智能指针实现

#include using namespace std; template class smart_ptr { public: smart_ptr(T *p)  { _ptr = p; _pcount = new int(1); } smart_ptr(const smart_ptr &s) { _ptr = s._ptr; _pcount = s._pcount;

2015-07-11 15:06:45 276

原创 string类和智能指针(简洁版)和shareptr简洁版代码实现

/*#include using namespace std; #include template class String { public: String() { _str = new char[1]; _str[0] = '\0'; } String(const char *str) { _str = new char[strlen(str) + 1]; str

2015-07-11 13:04:48 496

原创 c与c++关键字的用法总结

/* 1,关键字的总结 register: (1),这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。 (2),register定义的变量:register int num=10;不能对其取地址。即不能:int *p=&num. const: (1),const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TY

2015-07-08 14:36:02 813

原创 }1.字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“we are happy.”,则输出“we%20are%20happy.”。

#include #include void repace_black(char *str) { char *start = str; int black = 0; int len = strlen(str); int newlen = 0; char *pstr = str + len ; char *newpstr = NULL; while (*str) { if (

2015-07-04 10:15:13 714

原创 c语言常用函数实现

/*#include char* my_strcpy(char *dest,const char *src) { char *ret = dest; while (*src) { *dest = *src; *dest++; *src++; } *dest = *src; return ret;       } void main() { char a[] = 

2015-07-03 20:42:38 414

原创 斐波那契shell实现

#!/bin/bash read val arr[0]=1 arr[1]=1 i=0 while [ $i -le $val ] do     (( arr[$i+2]=arr[$i+1]+arr[$i] ))     ((i++))     done  echo ${arr[$val]}

2015-07-03 20:41:28 640

原创 shell实现的进度条

#!/bin/bash arr=('|' '/' '-' '\\') function proc(){       local index=0     for((i=0;i do    echo -e -n "\033[34m"       let ch=index%4       let index++       str="${str}"'*'          

2015-07-03 20:14:42 487

转载 不使用+-*/计算两个数的和

#include int Add( int x, int y)   {   if( y == 0 )   {   return x;   }   else   {   return Add( x ^ y, (x & y) }   } int main() { printf("%d\n",Add( 2, 3)); }

2015-06-30 16:41:01 549

原创 二进制有关问题

有1000瓶液体,⽆⾊⽆味,外表完全⼀样,其中⼀瓶是毒药,有10 条警⽝,警⽝喝过毒药后两⼩时后死亡。问,如何在两个⼩时后确定 哪瓶是毒药 解法:因为有1000瓶液体。10条警犬。 分别给这1000瓶液体编号,为(1~10000) 用二进制表示:10位就够了。 因为2^10=1024 给这10只警犬分别编号(1~10) 表示这1000瓶液体为:0000 0000 01    

2015-06-30 15:03:41 374

原创 c++实现计算机中的文件复制

#include using namespace std; #include void main(int argc, char *argv[]) { FILE *fpIn = NULL; FILE *fpOut = NULL; if(argc != 3) { cout exit(1); } fpIn = fopen(argv[1],"rb"); if(fpIn == N

2015-04-27 11:34:13 783

转载 内存泄露工具(用hash表实现)

#include    #include    #include    #include    #define DefaultSize 7   using namespace std;   struct Node   {       char *pname;//文件名字       int line;//行号       int size;//大小       long lo

2015-04-21 11:13:18 338

转载 内存泄露检测工具

#include   #include   using namespace std;   struct MemNode   {       char *pname;//文件名       int line;//文件所在行       int size;//内存泄漏大小       MemNode *link;   };      MemNode *node=NULL

2015-04-21 11:10:09 261

转载 运行成功的最新进度条代码

源代码 #include "process.h" #include #include #include void process() {      int i=1;      char buf[_SIZE_];      memset(buf, ' ', sizeof(buf));      buf[0]='[';      buf[101]=']';      buf[1

2015-04-07 17:10:38 525

转载 limux下进度条代码

1 建⽴proccess.h 代码如下: #ifndef _PROCCESS_ #define _PROCCESS_ #include #include #include #define _SIZE_ 103 void process(); #endif 2.建⽴proccess.c #include "proccess.h" void process() { i

2015-04-07 15:46:50 327

转载 迷宫代码

#include using namespace std; template class Stack { public: Stack() { capacity = STACK_SIZE; base = new Type[capacity]; top = 0; } ~Stack() { delete []base; base = NULL; top = 0; cap

2015-03-12 11:50:57 779

转载 计算机专业简单问题

问题:现有10堆沙子,标号分别为1,2,3,4,5,6,7,8,9,10.有四瓶水来鉴别这10堆沙子中的一堆为有色沙子。

2015-03-08 13:55:05 530

原创 二分法

#include using namespace std; int Find(int arr[5],int n,int  key) {      int low=0,high=n-1;  while(low { int  mid=(high+low)/2; if(key {   high=mid-1; } else if(key>arr[mid]) {  

2015-03-08 13:43:51 313

空空如也

空空如也

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

TA关注的人

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