自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《剑指offer》系列---1

最近一直在看剑指offer,这上面的题目都是比较考察编程能力的,打算做个记录,把写过的代码保存下来:1.实现一个string类面试官的考察点应该在以下几点:1.模板类的书写2.对于赋值函数考察的几点:(1)是否返回引用,因为只有返回引用,才能连续的进行赋值 (2)参数是否是常量 (3)是否是自身赋值(4)是否释放原来的内存 一个完善的 string类如下:#includ

2013-09-29 10:36:17 1332

转载 C++的四种cast操作符的区别

Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double d

2013-09-20 15:24:49 748

原创 阿里巴巴一道笔试题

其实这是谷歌的一道面试题::给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数惭愧,阿里的笔试题做错了,说实话,以前没见过,见过了就把搞懂阿里题目:给定rand_7()表示能生成1-7的随机数,使用四则运算和循环等控制语句,可以输出的有()A.rand_3()   B.rand_21()    C.rand_23()   D.rand_47()这个题目怎么做呢?我看

2013-09-17 19:29:53 1333 1

原创 stack的应用

STL除了给我们提供了一些容器(container)以外,还给我们提供了几个容器适配器(container adapters),stack便是其中之一看过STL源码的人都知道,stack其实是内部封装了 deque给我们使用,所有的操作,在内部都是基于deque的实现, 在 中,class stack的定义:unamespace std{     template >

2013-09-15 12:59:27 1513

原创 static成员函数成员变量

再一次吐槽一下,c++这门语言实在是太复杂了,语法规则这么多,关于static,还是有很多需要注意的地方,总结一下吧:首先,我们知道在c中,static的作用可以用来改变变量的生存期和作用域,函数的作用域,那么在面向对象导向的c++中,又有什么作用呢?我们考虑这样一个问题,一个学生类Student,这个类中有一个public变量s_num表示整个班级的学生的数量,那么这个变量应该设置成什么

2013-09-14 10:28:30 1186

原创 搜狐2012年校园招聘会笔试题解析

一、不定项选择题1、以下程序的打印结果是()[cpp] view plaincopy#include  using namespace std;    void swap_int(int a , int b)  {      int temp = a;      a = b;      b = temp;  }

2013-09-13 21:51:07 1191

原创 一些笔试题笔记1

总结一些常见的笔试题:最小公约数和最大公倍数:这个其实很简单,记住概念就可以了,我们利用辗转相除法计算:最大公约数:(摘自百度百科)一般地,如果求a和b的最大公约数(a>b),那么当时,得,这里表示b整除a,而表示b不能整除,当时,设余数为,根据整除的性质,有;当时,得,当时,设余数为,于是最小公倍数=两数的乘积/最大公约(因)数#include void

2013-09-13 12:44:29 1076

转载 应用 Valgrind 发现 Linux 程序的内存问题

Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构

2013-09-11 15:57:08 836

原创 c++中一个类所占用的空间

看到阿里的一道笔试题:#pragma pack(2)class A{ int i; union U { char buff[13]; int i; }u; void foo() { } typedef char* (*f)(void*); enum{red, green, blue} color;}a;答案应该是多少呢:24因为对于u,占用的内存是16

2013-09-10 21:57:16 1389 6

原创 二叉查找树的实现

二叉查找树是这样定义的:二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树二叉查找树是一种高效的搜寻树,类似于如下:以下是我参考网上的资源实现的:

2013-09-10 16:47:24 1724

原创 二叉树的前序、中序、后序的实现(递归和非递归)

二叉树的前序遍历,中序遍历,后序遍历,层序遍历一直是笔试面试中常考的内容,这次自己都把实现了写了一两个小时,算是总结过了,以后用的时候拿出来,如果写的不好的,希望大家指出来#include #include #include #include #include using namespace std;typedef struct BiTree_Node{ char da

2013-09-09 19:58:09 1244

原创 二分法查找的实现

二分法查找的前提是数据是有序的,时间复杂度是O(log2n)没有什么难点,写的太多了,直接上代码:#include int BSearch(int a[], int x, int low, int high){ if(low < high) return -1; int mid = (low+high)/2; if(x==a[mid]

2013-09-09 13:45:47 785

原创 git的简单使用

以前一直没有提交过代码,这次提交一下代码,整理一下git的简单使用1.首先我们要在github上面创建一个帐号,之后创建一个仓库create a new repo,选择默认选项就可以了2.配置git(1) 首先在本地创建ssh key:  # ssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@yo

2013-09-08 14:04:30 1362 1

转载 深入探讨c++中的引用

原文链接:http://www.programfan.com/article/2715.html#    摘要:介绍C++引用的基本概念,通过详细的应用分析与说明,对引用进行全面、透彻地阐述。  关键词:引用,const,多态,指针  引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当

2013-09-08 09:58:35 676

原创 函数指针和指针函数

两对基友,四个概念函数指针vs指针函数:函数指针:指向函数的指针,例如:void (*f) (int , int );指针函数:函数的返回值是指针,例如:void *f(int , int);本是同根生,缘何要分开:缘自于( )和 *,两者的优先级不同,前者的优先级大于后者指针函数比较简单,我们主要看函数指针一、函数指针的初始化和赋值函数:int func(in

2013-09-07 11:07:28 1106

原创 归并排序的实现

归并排序的时间复杂度和快排还有堆排序是一样的,归并排序利用了分治的思想,它的核心就是将两个有序的数组合并,那么我们怎么得到这两个有序的数组呢,就是将这两个数组再分为小的数组,由小的数组合并而成,是不是有种递归的赶脚?对了,归并就是,递归+合并算法的框架像这样的:void merge_sort(int a[], int l, int r, int temp[]){ if(l < r

2013-09-06 10:25:35 1000

原创 const和指针的那些事

写过一篇关于c++中const的总结,这里详细总结一下const和指针之间的关系首先我们看一段代码,就是字符数组的初始化问题#include using namespace std;int main(){ const char *s = "const object"; //in C, we can use char *s char s1[] = "const

2013-09-05 21:29:21 1074

原创 选择排序的实现

选择排序很简单,基本思想如下:从待排序的记录序列中选择关键码最小(或最大)的记录并将它与序列中的第一个记录交换位置;然后从不包括第一个位置上的记录序列中选择关键码最小(或最大)的记录并将它与序列中的第二个记录交换位置;如此重复,直到序列中只剩下一个记录为止。代码实现如下:#include #define ARRAYSIZE 4void swap(int *m, int *n

2013-09-05 13:02:19 724

原创 堆排序的实现

堆排序是利用了一种数据结构叫做二叉堆,二叉堆是这样定义的:二叉堆是一种特殊的堆,二叉堆是完全二元树或者是近似完全二元树,有最小堆和最大堆特点:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。利用堆排序数据的存储方式如下:以下是我的代码实现:/*************

2013-09-04 21:21:06 921

原创 笔试分析之腾讯2013暑期实习

4月份的笔试,考得不好,经过暑期的磨砺,回头再看那些题目,有些就豁然开朗了1.32位机上根据下面的代码,问哪些说法是正确的?signedchar a = 0xe0;unsignedint b = a;unsignedchar c = a;A.a>0 && c>0为真 B.a == c为真 C.b 的十六进制表示是:0xffffffe0D.上面都不对我总结

2013-09-04 16:02:59 1095

git community book

作为一个程序员,不会使用git是一件很糟糕的事情,这是我从git社区下载下来的一本学习的书籍,分享给大家

2013-09-08

空空如也

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

TA关注的人

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