自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (10)
  • 收藏
  • 关注

原创 Perl 语言入门课后习题

#!/usr/bin/perl#use strict;use 5.010;use warnings;use strict;sub total{my $lost;foreach (@_) { $lost+=$_; } $lost;}#my @nnaa=qw/1 2 3 4 5 1 1 2 4 1 2 4/;#print total(1..10

2013-04-16 10:51:31 1170

原创 局部变量和全局变量的相关问题

#include #include using namespace std;main(){char str1[]="hello world";char str2[]="hello world";char *str3="hello world";char *str4="hello world";if(str1==str2) cout<<"str1 and str2 is

2012-10-23 21:09:16 654

转载 GetMemory(),运行Test 函数会有什么样的结果?

题目:void GetMemory(char *p){p = (char *)malloc(100);}void Test(void){char *str = NULL;GetMemory(str);strcpy(str, "hello world");printf(str);}请问运行Test 函数会有什么样的结果?分析:程序崩溃。因为GetMem

2012-10-23 13:58:38 6952

原创 动态继承

# include using namespace std;struct A{ int a; A() { cout<<"I am A"<<endl; a=1; } ~A() { cout<<"I am A destruct"<<endl; }};struct B:public A{ B() { cout<<"I am B"<<endl; a=0;

2012-10-16 21:17:53 468

原创 各种继承关系

#include "stdafx.h"#include #include using namespace std;struct A{protected: int num;public: A() { cout<<"AAA"<<endl; foo(); } ~A() { cout<<"AAA~~"<<endl; } int virtual foo() {

2012-10-13 00:43:33 295

原创 protected 成员值得注意的易错点

#include "stdafx.h"#include #include using namespace std;struct A{protected: int num;public: A() { cout<<"AAA"<<endl; }};struct B: A{public: int test(A &a,B &b) { int qq=num; qq

2012-09-23 11:19:55 355

原创 类构造和析构顺序

#include "stdafx.h"#include using namespace std;class A{public: A() { cout<<"I am A"<<endl; } ~A() { cout<<"I am A destory"<<endl; }};class B{ public: B() { cout<<"I am B"<<endl;

2012-09-16 10:40:48 346

原创 赋值构造函数和拷贝构造函数

#include "stdafx.h" #include #include using namespace std;class String { char * m_data;public: String (const char * other) { cout<<"我是默认构造函数"<<endl; int len; len=strlen(other)+1; m_d

2012-09-02 11:37:31 382 1

原创 一道面试题“传入一个12345,返回结果54321”的实现

#includeint check(int a,int &b){ if(a==0) { return 0; } int k=a; int i=1; int gewei; gewei=a%10; while(k!=0) { k=k/10; i=i*10; } b=b+gewei*i/10; check(a/10,b);}main(){

2012-08-20 17:26:46 950

原创 十进制转N进制的实现

#includeint Check(int i,int N){ while(i>0) { int k=i%10; if(k>=N) { cout<<"ERROR!"<<endl; return 1; } i=i/10; } return 0;}int Calc(int i,int N){ int k=i/10*N

2012-08-13 16:19:29 1018

原创 联合体相关知识点

联合体和类不同,类里面的元素是占用各自的内存空间,而联合体是共用一段内存空间,而该内存空间存储的是该联合体里面最大的数。#includeunion{ int a; struct{ char i; char j; }k;}u;main(){ u.a=0x4142; cout<<hex<<u.a<<endl; cout<<dec<<u.k.i<<endl; cout

2012-08-13 15:11:40 285

原创 友元类的相关知识

1、友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。 2、友元关系不能被继承。 3、友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。 4、友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明。#i

2012-08-09 17:58:41 2036

原创 构造函数初始化列表相关知识点集合

1、构造函数初始化列表仅用于初始化成员的值,并不指定这些初始化执行的次序。成员被初始化的次序就是定义成员的次序。第一个被定义的成员先被初始化,依次类推。一般,初始化的顺序无关紧要,然而,如果一个成员是根据其他成员而初始化,则成员的初始化顺序是至关重要的2、当成员变量是const 类型的时候,只能使用初始化列表初始化,在构造函数里面赋值是会出错的。常量变量只能被初始化,所以必须在初始化列表中完成

2012-08-09 17:36:09 367

原创 C++类初始化,继承等相关易错点

很少编类,今晚试了试手,从下面的代码得到了几点经验:1、成员函数如果不是构造函数则需要指定返回值(或者void)2、类的成员变量在继承的时候,并不是单独的覆盖,而是有点像局部变量,和父类的同名变量可共存,从代码编译结果可以知道,两个变量的存储地址是不一样的。#includeclass Base{public: int a; Base() { a=0; co

2012-08-06 22:37:22 527

原创 求一个无符号整形变量1的个数

第一种方法:位操作,这种操作的复杂度是二进制的位数:#includemain(){ unsigned int a; cin>>a; int count=0; int num=0; while(count<8) { if(a&1==1) { num++; } a>>=1; count++; } cout<<num<<endl;

2012-07-13 09:52:23 532

原创 N个数中前K个小的树(快排的改进)

在没有改进快排实现得到K个数时,时间复杂度达到了O(NlogN),而改进之后时间复杂度降到了O(NlogK).#includeint Solt(int *a,int start,int end,int k){ if(start==end) { return 0; } int Post=start; int Temp=a[start]; int Change;

2012-06-28 20:36:53 807

转载 程序圧栈的顺序

最近看前人写了一篇文章,是关于堆栈的相关知识,里面讲到了程序圧栈的顺序,很是经典,现转贴原帖,顺,膜拜之:堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程

2012-06-28 10:49:24 502

原创 C++实现栈

这是从前一篇博客的"C++实现队列"稍作修改得到的:#includestruct Node{ int num; Node *next; Node *father;};class quene{Node *tail;Node *head;public: quene(); //构造函数不能有返回值 pop(); push(); print(); c

2012-06-24 12:36:23 364

原创 C++实现队列

#includestruct Node{ int num; Node *next; Node *father;};class quene{Node *tail;Node *head;public: quene(); //构造函数不能有返回值 pop(); push(); print(); count();}; quene::quene()

2012-06-24 12:25:37 864

原创 民生银行2013年暑期实习生笔试编程题

题目是:求一个数N的阶乘末尾含有多少个0解题思想:末尾0是由2*5的来的,所以考虑因式分解,得到有多少个2或者5,然后,对于一个数来说,被2整除的个数肯定比5多,所以这里只考虑被5整除的个数。#includemain(){ int a; cout<<"input the num you want to count"<<endl; cin>>a; int temp=1;

2012-06-24 10:05:13 2166

原创 初窥this指针

1.何谓this指针      C++primer里定义this指针:指向该类对象的一个指针。成员还是不能定义this指针,但是成员函数可以显式调用this指针。2.何时用this指针    尽管在成员函数内部显式调用this指针通常是没必要的。但是有一种情况我们是必须这么做:当我们需要将一个对象作为整体引用而不是引用对象的一个成员。所以,在该函数返回对调用该函数的对象的引用时需要th

2012-06-20 22:12:01 802

原创 C++实现二叉树(初始化,删除,遍历)

#includestruct Node{int num;Node *LChild;Node *RChild;Node *Father;};int Init(Node *a){ cout<<"Plea Input The Num"<<endl; cin>>a->num; if(a->num==0) { if(a==a->Father->LChild) {

2012-06-20 21:03:35 4886 1

原创 C++实现最优二叉树(修改版)

#includestruct Node{int num;Node *next;Node *LChild;Node *RChild;};void Print(Node *a) { Node *p=a->next; while(p!=NULL) { coutnum<<endl; p=p->next;

2012-06-19 23:31:12 1319

原创 链表的创建,插入,删除,逆序

今晚折腾了一晚,发现还是临界条件没设置好,下面是更新版的:#includestruct Node{int num;Node *next;Node *LChild;Node *RChild;};Node *Creat(){ int n=0; Node * p1,*p2,*head; //Node *p1,p2,head和这个声明不同 head=NULL; p1=n

2012-06-18 20:50:10 290

原创 链表的创建,插入,删除

#includestruct Node{int num;Node *next;};Node *Creat(){ int n=0; Node * p1,*p2,*head; //Node *p1,p2,head和这个声明不同 head=NULL; p1=new Node; p2=new Node; head=new Node; head->next=p2; cou

2012-06-14 22:01:41 256

原创 浅析C++里的new

new运算符用于动态分配内存new用法:          1.     开辟单变量地址空间               1)new int;  //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a.                2)int *a = new int(5) 作

2012-06-14 20:15:46 349

原创 C++实现堆排序(更新版)

#includevoid Exchange(int *a,int i,int largest) {int temp=a[i];a[i]=a[largest];a[largest]=temp; } Keep(int *a,int i,int n) { int largest; int l=2*i+1;int r=2*i+2; if(la[i]) {

2012-06-11 20:29:59 291

转载 进程状态

三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪:当一个进程获得了除处理机以外

2012-05-23 09:36:21 598

原创 临界区域问题【2】

do{ flag[i]=true; turn=j; while(flag[j]&&turn==j); //临界区 假设i在临界区(flag[i]==true&&turn==j),这时候j已经等待了(flag[j]==true&&turn==i) flag[i]=false; //剩余区 } while(1);i的:do{ turn=j; while(turn==j);

2012-05-22 09:28:43 339

转载 临界区域问题

问题:教材:operating system concepts [sixth edition]的汉化版,高等教育出版社原著:Abraham Silberschatz问题:临界区域问题(7章2小节)描述:书中对解决两个进程的临界区域问题提出以下这样1个解决方案,并给出         评述,在下关键对评述不理解。         解决方案:让两个进程共享一个 普通变量turn

2012-05-21 10:27:52 851

转载 架构设计:生产者/消费者模式[4]:双缓冲区

“双缓冲区”是一个应用很广的手法。该手法用得最多的地方想必是屏幕绘制相关的领域(主要是为了减少屏幕闪烁)。另外,在设备驱动和工控方面,双缓冲也经常被使用。不过今天要聊的,并不是针对上述的某个具体领域,而是侧重于并发方面的同步/互斥开销。  ★为啥要双缓冲区   记得前几天在介绍队列缓冲区 时,提及了普通队列缓冲区的两个性能问题:“内存分配的开销”和“同步/互斥的开销”(健忘的同学,先回

2012-05-18 10:11:12 2108

转载 架构设计:生产者/消费者模式[3]:环形缓冲区

前一个帖子 提及了队列缓冲区可能存在的性能问题及解决方法:环形缓冲区。今天就专门来描述一下这个话题。  为了防止有人给咱扣上“过度设计”的大帽子,事先声明一下:只有当存储空间的分配/释放非常频繁 并且确实产生了明显 的影响,你才应该考虑环形缓冲区的使用。否则的话,还是老老实实用最基本、最简单的队列缓冲区 吧。还有一点需要说明一下:本文所提及的“存储空间 ”,不仅包括内存,还可能包括诸如硬盘之类

2012-05-18 09:39:51 623

转载 架构设计:生产者/消费者模式[2]:队列缓冲区

经过前面两个帖子的铺垫,今天终于开始聊一些具体的编程技术了。由于不同的缓冲区类型、不同的并发场景对于具体的技术实现有较大的影响。为了深入浅出、便于大伙儿理解,咱们先来介绍最传统、最常见的方式。也就是单个生产者对应单个消费者,当中用队列 (FIFO)作缓冲。  关于并发的场景,在之前的帖子“进程还线程?是一个问题! ”中,已经专门论述了进程和线程各自的优缺点,两者皆不可偏废。所以,后面对各种缓冲

2012-05-18 09:30:17 407

转载 架构设计:生产者/消费者模式[0]:概述

今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。由于该模式很重要,打算分几个帖子来介绍。今天这个帖子先来扫盲一把。如果你对这个模式已经比较了解,请跳过本扫盲帖,直接看下一个帖子(关于该模式的具体应用) 。  看到这里,可能有同学心中犯嘀咕了:在四人帮(GOF)的23种模式里面似乎没听说过这种嘛!其实GOF那经典的23种模式主要是基于OO的(从书名《Design P

2012-05-18 09:16:22 332

原创 抢占进程调度的原则

(1)时间片原则:各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。  (2)优先级原则:每个进程均赋于一个调度优先级,通常一些重要和紧急的进程赋于较高的优先级。当一个新的紧迫进程到达时,或者一个优先级高的进程从阻塞状态变成就绪状态的时,如果该进程的优先级比当前进程的优先级高,OS就停止当前进程的执行,将处理机分配给该

2012-05-16 09:48:25 4570

原创 交换两个数据的值而不采用新的存储单位(C++实现)

#include void Swap(int &a, int &b){ a^=b; b^=a; a^=b;}main(){ int a; int b;cout<<"交换两个数据而不采用新的存储单位"<<endl;cin>>a;cin>>b;cout<<" a is "<<a<<endl;cout<<" b is "<<b<<endl;Swap(a

2012-05-15 10:22:38 285

转载 C++动态数组分配

在c++中时不能像java中一样定义这样的数组 int[] arr = new int[],如果我们要根据程序的运行来实现动态数组在c++中利用指针这个好东东。动态一维数组:#includeusing namespace std;int main(){     int len;     cin>>len;     int *p=new int[len];

2012-05-11 09:56:34 276

原创 C++实现插入排序

排序算法,其实在几个基本的算法里面效果是最差的,放在最后面。#include void Change(int *b,int a,int j,int Num){ for (int i=Num-1;i>j;i--) { b[i]=b[i-1]; } b[j]=a;}void Paixu(int *a,int *b,int Num){ int flag=0; b[

2012-04-19 20:49:35 260

原创 C++实现堆排序

C++实现堆排序的源代码:#include void zhenli(int *a,int i,int Num){ if (2*i+1<=Num) { if(a[2*i-1]>a[2*i]) { if (a[i-1]<a[2*i-1]) { int temp=a[i-1]; a[i-1]=a[2*i-1]; a[2*i-1]=temp;

2012-04-19 11:51:43 343

原创 C++实现冒泡排序

下面是C++实现的冒泡排序:#include int Solt(int *a,int c){ if(c<=0) return 1; int temp=0; int flag=0; for(int i=0;i<c;i++) { if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;

2012-04-17 09:53:21 427

原版SSH Secure Shell Client

原版SSH Secure Shell Client,无广告,亲测可用

2013-01-09

ACM模板(吉林大学)

里面有挺多的好的模板可以看,初学者学习比较简单

2012-04-30

Matlab实现Hu不变矩特征

代码可以运行,提取Hu 7阶不变矩,可以利用此7阶不变矩进行目标识别

2012-03-22

Google C++编程风格指南

Google C++编程风格指南Google C++编程风格指南Google C++编程风格指南Google C++编程风格指南Google C++编程风格指南

2011-09-23

C++编程艺术

虽然是扫描版,但是质量还是很不错,关键是这本书的内容很给力,不管是对入门的还是想再进一步学习的程序民工们都是一本很好的书!

2011-09-23

Effective.C++(中文版)

Effective.C++(中文版)是一本从入门到精通C++不可多得的一本经典书籍,在亚马逊网上书店畅销多年

2011-09-22

C语言深度剖析(找工作必备)

《C语言深度解剖》由作者结合自身多年嵌入式c语言开发经验和平时讲解C语言的心得体会整理而成,其中有很多作者独特的见解或看法。由于并不是从头到尾讲解C语言的基础知识,所以《C语言深度解剖》并不适用于C语言零基础的读者,其内容要比一般的C语言图书深得多、细致得多,其中有很多问题是各大公司的面试或笔试题。

2011-09-22

linux程序设计(第三版)(清晰版)

《Linux 程序设计(第3版)》:最负盛名的Linux程序设计图书,内容全面深入,全球开源社区集体智慧结晶

2011-09-22

飞鸽源代码

无需解释,经典再现,飞鸽源代码倾情奉献~

2011-09-19

空空如也

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

TA关注的人

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