自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++派生继承访问权限

当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定。1.如果子类从父类继承时使用的继承限定符是public,那么(1)父类的public成员成为子类的public成员,允许类以外的代码访问这些成员;(2)父类的private成员仍旧是父类的private成员,子类成员不可以访问这些成员;(3)父类的protected成员成为子

2014-08-15 20:41:22 642

原创 <细节>写个简单的函数,用于判断CPU的字节序(little endian/big endian)

这个题目是PPS2013校园招聘的一个笔试题目,

2014-08-14 17:13:42 2079

转载 CPU的字节序——大端小端模式详解

1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端:为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的cha

2014-08-14 17:03:35 2540 2

转载 多线程环境下对变量的读写操作的原子性问题(一道百度笔试题引发的思考)

以下多线程对int型变量x的操作,哪几个需要进行同步:( )A. x=y; B. x++; C. ++x; D. x=1;从表面看上去实在是看不出什么突破口,我们不妨将这些代码译成汇编语言再来分析。 01  x = y;  02  mov eax,dword ptr [y]  03  mov dword ptr [x],eax  04    05  x+

2014-08-11 14:53:04 726

转载 TCP拥塞控制算法

为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法,再后来在TCP NewReno中又

2014-08-07 10:37:26 1683

转载 关 于 PV 操 作

在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:    P(S):①将信号量S的值减1,即S=S-1;           ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。    V(S):①将信号量S的值加1,即S=S+1;      

2014-08-05 10:10:43 2410

原创 关于虚函数

虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型。以实现统一的接口,不同定义过程。如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数。

2014-07-02 19:20:46 896

原创 <细节>为什么构造函数不能是虚函数,为什么有虚析构函数

1.构造函数为什么不能为虚函数

2014-07-02 15:58:23 717 1

转载 虚函数和纯虚函数

1、基本形式:virtual ReturnType Function_1();            //虚函数声明virtual ReturnType Function_2() = 0;      //纯虚函数声明先讲示例吧,再总结结论。2、示例:class Animail{public:    void Function_1() {cout };class

2014-07-02 15:43:36 494

转载 堆和栈的区别

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

2014-07-01 20:46:50 447

原创 <实例>消除内嵌括号——使用栈实现

题目:给定一个如下格式的字符串(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是另一个括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请报错。

2014-06-24 10:05:58 652

原创 <细节>动态创建二维数组

今天在做一个关于数组相似度的题目,需要动态创建二维数组,刚开始想用常规的int a[ ][ ]建立,但很快就发现行不通,这种常规数组必须在编译前指定数组的维数,而这个题目在的维数必须在运行中计算得出,于是想到采用new来建立动态二维数组,这个方法行得通,但是很麻烦,也不太利于理解,后面决定采用vector >方法来创建,简单了不少,下面对两种方法都进行一下总结。

2014-06-23 16:46:32 634

原创 <实例>放苹果问题

放苹果问题非递归算法 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分

2014-06-23 16:15:26 995

原创 <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换——使用string库实现

#include #include using namespace std;string reverse(string sentence){ string::iterator begin = sentence.begin(); string::iterator end = sentence.end(); char tmp; while( begin < end ) { tm

2014-06-17 11:10:29 1105 1

原创 <细节>C++的常用IO格式功能

头文件iostream中定义的常用操作符头文件ioman

2014-06-15 21:03:24 783

原创 <细节>C++标准库string类型

string库基本概念

2014-06-10 21:16:55 676

原创 2014年6月6日--华为机试

华为机试题目,看看有没有好的解法

2014-06-06 20:26:38 951 1

原创 快速排序代码(选择最右值最为枢纽元)

下面是参考《数据结构域算法分析》书上部分代码,结合自己理解写出的快速排序代码

2014-06-05 15:11:13 1744

转载 算法3:最常用的排序——快速排序

上一节的冒泡排序可以说是我们学习第一个真正的排序算法,并且解决了桶排序浪费空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了O(N2)。假如我们的计算机每秒钟可以运行10亿次,那么对1亿个数进行排序,桶排序则只需要0.1秒,而冒泡排序则需要1千万秒,达到115天之久,是不是很吓人。那有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。

2014-06-05 14:58:34 1397

原创 2014年6月4日--联想笔试

下午才知道晚上有联想笔试,急急忙忙打印了简历跑了过去,budebuu

2014-06-05 09:11:54 757 2

转载 白话经典算法系列之五 归并排序的实现(改)

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plaincopy

2014-06-04 16:12:11 594

转载 白话经典算法系列之七 堆与堆排序(改)

二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆:

2014-06-04 10:20:51 654

转载 白话经典算法之直接排序(改)

直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1.      初始时,数组全为无序区为a[0..n-1]。令i=02.      在无序区a[i…n-1]中选取一个最小的元素,将其

2014-06-03 17:11:01 605

原创 <实例>输出给定字符串的全部连续子序列

在别人博客上看到的,据说是阿里实习生电面的题目,自己拿来做了一下 。题目如下:

2014-05-30 15:42:26 2161 2

原创 二叉树的建立和基本操作

定义二叉树结构体:创建二叉树:

2014-05-30 11:46:34 6744 6

原创 求最大公约数问题----辗转相除法

#include using namespace std;int gcd( int m, int n ) { if( m<n ) { int temp = m; m = n; n = temp; } if( m%n == 0 ) { return n; } else { return gcd( n,m%n ); }}int main(){

2014-05-29 15:48:21 666

原创 <实例>C++中交换两数值的几种方法

交换两数值,最常用的就是使用指针,下面有三种指针的方法

2014-05-29 11:05:46 11446

原创 <编程之美>3.9重建二叉树

给定一棵二叉树,假设每个节点都用唯一字符来表示,具体结果如下:

2014-05-28 21:50:04 725

原创 <实例>C++ 将一句话里的单词进行倒置,标点符号不倒换。

将“I come from tian jin.”倒转变成“t”

2014-05-28 16:44:37 3757

原创 <细节>c++中关于++和*的优先级

#include using namespace std;int main(){ int a,b,c,d; a = 10; b = 10*++a; //先++a,再* c = 10*a++; //a=11,应该为110 cout<<"b:"<<b<<endl; cout<<"c:"<<c<<endl; return 0;}

2014-05-28 14:59:30 1645

转载 类的sizeof

文字是转载的,图是原创的。1、空类的sizeof是1。空类是指没有成员的类,类中的函数不占空间,除非是虚函数。[cpp] view plaincopyclass A  {         public:         A(){}         ~A(){}         void fun(){}  }; 

2014-05-27 21:02:27 448

原创 <细节>C++函数形参表调用顺序

#include using namespace std;void print(int i, int j){ cout<<i<<endl; cout<<j<<endl;}void main(){ int i=0; print(i,i++);}观察上述代码,常规

2014-05-27 20:25:09 901

OFDMA基本介绍

简单的介绍了OFDMA技术,对比了上行技术和下行技术的区别

2013-06-30

空空如也

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

TA关注的人

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