摘要: 1.尽量以const,enum,inline替换define。2.旧式的编译器可能不允许static在其申明式上获得初值。此外所谓的‘in-class’初值设定也许只针对整数常量进行,要是你的编译器不支持上述语法,可以将初值放在定义式。要是数组无法初始化时可以考虑使用类中的枚举值。3.如果成员变量是... 阅读全文
posted @ 2015-05-04 10:36 阿木木在发呆 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 21.查看不同版本直接的变动和差异 情景:某次将自己的分支版本和远程master合并解决冲突后发现以前能够正常运行的程序的无法正常运行了 但又忘记合并解决冲突时修改了哪些代码。 解决方案: 1- 通过git log 查找某次commit的hash值 g... 阅读全文
posted @ 2015-04-29 10:44 阿木木在发呆 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1. pairtemplate struct pair { typedef T1 first_type; typedef T2 second_type; T1 first; T2 second; pair() : first(T1()), second(T2()) {} pair(const T1 & a, const T2 & b) : firs... 阅读全文
posted @ 2015-04-21 23:17 阿木木在发呆 阅读(242) 评论(0) 推荐(0) 编辑
摘要: set集合用于存放不重复的元素template , class Alloc = alloc>class set{......private:typedef rb_tree, key_compare, Alloc> rep_type;rep_type t; //set内部的实现实际上是一个红黑树..... 阅读全文
posted @ 2015-04-21 22:38 阿木木在发呆 阅读(495) 评论(0) 推荐(0) 编辑
摘要: Reference Constructors vector Constructs a vector of a specific size or with elements of a specific value or with a specific allocator or as a copy of some other vector. Typedefs allocator_type A t... 阅读全文
posted @ 2015-04-19 20:08 阿木木在发呆 阅读(448) 评论(0) 推荐(0) 编辑
摘要: class BST{...};class BalanceBST:public BST{...};vvoid printBstArray(ostream &s,const BST array[],int numElements){ for(int i = 0;i < numElements;++... 阅读全文
posted @ 2015-04-07 23:19 阿木木在发呆 阅读(190) 评论(0) 推荐(0) 编辑
摘要: void RandNumbs(int nLimts, int result[], int n)//给定范围内产生n个不同随机数(1 nLimts),并存储到result中 { int nNum = 0; int temp = new int[nLimts]; for (int i = 0; i 阅读全文
posted @ 2015-04-03 11:32 阿木木在发呆 阅读(221) 评论(0) 推荐(0) 编辑
摘要: Map的基本用法 map内部使用的是红黑树,在map内部所有的数据都是有序的 map插入有三种方法: insert(pair(i,str)); myMap.insert(map::value_type(i,str)); myMap[2] = "a"; map遍历也有三种方法 迭代器 数组 反向迭代器 map删除数据使用erase函数,可以: 用关键字某个元素 迭代器删除某个元素 迭代器... 阅读全文
posted @ 2015-03-27 00:09 阿木木在发呆 阅读(2058) 评论(0) 推荐(0) 编辑
摘要: 自我赋值发生在对象被赋值给自己时,例如: val = val; vec[i] = vec[j];//潜在的自我赋值(i=j) *p = *q;潜在自我赋值 class A { A& operator=(const A& rhs)//不安全的赋值版本 { delete p;//停止使用当前的对象 p = new P(rhs.p);//使用rhs的副本 ... 阅读全文
posted @ 2015-01-21 11:24 阿木木在发呆 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 一、C++默默编写并调用了哪些函数当你写下:class CEmpty{}这就好像你写下class CEmpty{public: CEmpty(){…} CEmpty(const CEmpty &rhs){…} ~CEmpty(){…} CEmpty& operator=(const CEmpty &... 阅读全文
posted @ 2015-01-16 11:15 阿木木在发呆 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 问题描述:找出链表中倒数第K个节点思路分析:用两个指针,一前一后,保持k个距离,前面的指针移动到末尾,后面的指针就刚好直到第k个节点,要考虑到k为0,倒数第k个节点不存在的情况。参考代码:ListNode* FindKthToTail(ListNode * pHead,unsigned int k)... 阅读全文
posted @ 2014-12-23 11:05 阿木木在发呆 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 申明:这本书之前看过,自己没总结,以下故事是豆瓣 南桥 兄的书评,等我看了第二遍在评价一下 •有一段时间,为抑制企业给CEO乱涨工资行为,美国媒体开始给CEO公开工资,并排名。结果,CEO工资涨得更是无法收拾了,因为富人这时候眼睛看着超级富人了; •你对自己的工资是否满意,要看你老婆的妹夫赚... 阅读全文
posted @ 2014-12-22 21:40 阿木木在发呆 阅读(1593) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一个整数数组,实现一个函数来调整该数组中的数字顺序, 是的所有奇数位于数组的前半部分,所有偶数位于后半部分。 思路分析: 使用两个指针,一个指向数组头,一个指向数组尾,相向运动,一个在前面找偶数, 一个在后面找奇数,找到后互换,两个指针相遇则结束。 参考代码: void RecordOddEven(int *pData,int nLength){ if ((pData... 阅读全文
posted @ 2014-12-21 22:05 阿木木在发呆 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 问题描述:给定单相链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 这个比较简单,做不做解释,直接看参考代码,不过有一点就是要注意,还是要看删除的节点类型,不能保证总是O(1)时间 参考代码: void DeleteNode(ListNode** pHead,ListNode *pTobeDelete){ if ((pHead == NULL) || (*pHead =... 阅读全文
posted @ 2014-12-21 19:48 阿木木在发呆 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3打印出1-999. 思路分析: 最简单的想法莫过于先算出这个最大的数,然后循环打出,但是没有考虑大溢出和大数问题。 下面有两种思路,一个是用数组模拟字符串,一种是用排列组合的方法。 参考代码: 思路一:字符串上模拟数字加法 bool Increment(char *number)//实现在数字字符串上+1{ bo... 阅读全文
posted @ 2014-12-14 10:22 阿木木在发呆 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 问题描述:实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需考虑大数问题。思路分析:要是你秒秒钟想到一个循环搞定估计面试没戏了。要考虑指数为0和负数的情况,如果底数也为0了?为负数时就是相当于要求正数时的倒... 阅读全文
posted @ 2014-12-13 21:11 阿木木在发呆 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 1.概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用模式:同步:所谓同步,就是在发出一个功能调用时,在没有得到结果前,该调用就不返回。也就是必须一件一件做事,等前一件做完了才能做另一件。例如在C/S模式的某个流程中,你... 阅读全文
posted @ 2014-12-13 13:14 阿木木在发呆 阅读(7731) 评论(2) 推荐(1) 编辑
摘要: 一、TCP编程的一般步骤 服务器端: 1、创建一个socket,用函数socket() 2、绑定IP地址、端口等信息到socket上,用函数bind() 3、开启监听,用函数listen() 4、接收客户端上来的连接,用函数accept() 5、收发数据,用函数send()和recv(),或者read()和write() 6、关闭网络连接 7、关闭监听 客户端: 1、创建一个socket,用函数s... 阅读全文
posted @ 2014-12-04 23:17 阿木木在发呆 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 思路分析: 简单的立马想到将次数右移,只要与1相与的话就能算出个数了,但是位移负数时左边为了保持符号位会 补一,例如将1101右移以为会变成1110.这样就会造成死循环。 下面有两种可行的方法: 1、我们可以不右移输入的数组n,首先把n和1做与运算,判断最低位是不是1,接着把1左移一位得到2再和 n做与运算,... 阅读全文
posted @ 2014-12-03 17:53 阿木木在发呆 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 一、一个C++编译的程序占用的内存分为以下几个部分1、栈区:由编译器自动分配 存放函数的参数值,局部变量的值等,操作方式类似于数据结构中的栈。2、堆区:一般由程序员分配释放,若程序员不释放,程序结束时 可能 有系统收回。它与数据结构中的堆是两回事。分配方式类似于链表。3、全局区(静态区):全局变量和... 阅读全文
posted @ 2014-12-02 23:13 阿木木在发呆 阅读(3442) 评论(1) 推荐(0) 编辑