c++
文章平均质量分 65
qiuyunchun
这个作者很懒,什么都没留下…
展开
-
使用代理类限制隐式转换
#include using namespace std; //ImplictChange只有一个数据成员x class ImplictChange { public: ImplictChange(int a) : x(a) {} //explicit可以防止隐式转换 friend bool operator==(const ImplictChange&原创 2013-04-08 12:57:22 · 537 阅读 · 0 评论 -
C++中指针和引用的区别
本文转载自:http://www.cnblogs.com/kingln/articles/1129114.html 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能转载 2013-04-21 16:27:39 · 531 阅读 · 0 评论 -
内存池
内存池(Memory Pool)是一种内存分配方式。即可以分配内存。 为什么要用内存池?通常我们习惯直接使用new/delete、malloc/free来申请/释放内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。特别所分配的内存很小时,容易产生内存碎片。 操作系统分配/释放内存的原理:分配内存时,操作系统会查找内存空闲表,找到一个比需要分配内原创 2013-03-03 12:21:36 · 616 阅读 · 0 评论 -
排序算法的稳定性
面试中很多时候会考察排序算法的稳定性,在此特为排序算法稳定性做一个分类。 稳定排序:基数排序、冒泡排序、直接插入排序、归并排序 不稳定排序:快速排序、希尔排序、堆排序、直接选择排序 其中选择排序容易混淆,举个例子来说明:序列5 8 5 2 9,我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。原创 2013-04-11 20:28:08 · 569 阅读 · 0 评论 -
二叉树的遍历非递归形式
#include #include #include using namespace std; struct node { char data; node* left; node* right; node(char a = '\0',node* p1 = NULL,node* p2 = NULL) : data(a) , left(p1) , right原创 2013-04-20 18:59:27 · 612 阅读 · 0 评论 -
分析交换两个整数的特殊写法
今天晚上看CSDN博客时,勾起了我对交换两个整数写法的思考,当然这是一个非常简单的问题,因为一个交换代码只有三行,初学者都能轻松些出来。今天我分析这个交换代码比较特殊,他利用位运算来交换两个数。代码如下:a ^= b; b ^= a; a ^= b;将三个式子连写:a ^= b ^= a ^= b; 。我看到这种写法是我做acm时,我的队友这样写的,当时没对这个问题产生重视,由于百度面试遇原创 2013-04-08 12:51:12 · 976 阅读 · 0 评论 -
2012百度校园招聘(笔试,一面,二面)
笔试 1. 死锁产生的原因及其必要条件 2. 面向对象的三个基本特征和五个设计原则 3. windows内存管理方式有些,并讲解每种方式的优缺点 4. 有1001个运动员,现在要找出其中的冠军,最少需要多少次比赛,并写程序模拟比赛过程 5. 有100个灯,初始化全部熄灭,现在一次做如下操作:先将所有灯打开,在间隔一个将灯关闭(即2的倍数被关闭),在间隔3个如果灯是打开的就关闭,如果是关原创 2013-04-08 13:01:10 · 928 阅读 · 0 评论 -
c/c++函数调用约定
调用方式 参数传递顺寻 清理堆栈 支持变长参数 使用对象 函数名修饰 (Name-decoration convention) 其他 __cdecl 从右至左 调用者 支持 C/C++默认调用方式 函数名前加下划线如函数main原创 2013-04-19 20:57:01 · 578 阅读 · 0 评论 -
详解大端模式和小端模式
详解大端模式和小端模式 本文转载自:http://blog.csdn.net/ce123/article/details/6971544 一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始转载 2013-04-14 11:07:34 · 524 阅读 · 0 评论 -
二分法类型总结
二分法 能用二分法处理的问题都有一个共同特征即题目具有单调性。 二分法的题目类型如下: 1. 基本二分:对有序数组进行查询 2. 查找下届:有序数组中如果要查找的数存在则返回第一次出现的位置,否则返回比该数大的第一个数的位置,STL的lower_bound实现了此功能。 1) SGI STL源码: int* LowerBoun原创 2013-03-15 19:12:48 · 1838 阅读 · 0 评论 -
智能指针(引用计数版)
#include using namespace std; template class smartPoiter; template class u_ptr { private: int num; T *ptr; u_ptr(T* p): num(1),ptr(p) {cout << "创建" << endl;} ~u_ptr() {原创 2013-04-08 12:55:03 · 460 阅读 · 0 评论 -
智能指针(指向转移写法)
#include using namespace std; template class auto_ptr { public: explicit auto_ptr(T* p = 0):pointee(p) {} //默认参数的构造函数 auto_ptr(auto_ptr& rhs): pointee(rhs.release()) {} ~auto_ptr(原创 2013-04-08 12:53:56 · 896 阅读 · 0 评论 -
链表的基本操作
#include #include #include #include using namespace std; struct ListNode { int data; ListNode* next; //ListNode(int a = 0,ListNode* p = 0) : data(a) , next(p) {}; }; void原创 2013-04-08 12:47:42 · 447 阅读 · 0 评论 -
过桥问题和倒水问题
转载自:http://blog.csdn.net/morewindows/article/details/7481851 热门智力题 过桥问题和倒水问题 过桥问题和倒水问题都是笔试面试中的热门智力题,不但微软、GOOGLE、百度、腾讯等公司采用,甚至在IQ测试与公务员考试中都能见到。本文不但教你如何快速用手算来解决这两种问题,并且教你如何用程序代码来计算这两种问题。绝对让你大有收获。 一.过转载 2013-05-02 19:11:21 · 525 阅读 · 0 评论