- 博客(34)
- 收藏
- 关注
转载 一个毕业后的研究生的职业规划
出处: http://blog.csdn.net/tianmohust/article/details/7183366
2014-08-12 22:53:32 807
转载 人生十大效应
1、晕轮效应(halo effect): 又称“光环效应”、“成见效应”、是指在人际相互作用过程中形成的一种夸大的社会印象,正如日、月的光辉,在云雾的作用下扩大到四周,形成一种光环作用。常表现在一个人对另一个人(或事物)的最初印象决定了他的总体看法,而看不准对方的真实品质,形成一种好的或坏的“成见”。所以晕轮效应也可以称为“以点概面效应”。是主观推断的泛化、定势的结果。 人生启
2014-08-12 22:37:49 1313
原创 TCP拆封
。网络接口分别发送和接收IP、ARP、RARP的数据,同理,也必须在以太网(假定物理网络是一个以太网)的首部加入一个字段,用来说明是哪个协议的数据。为此,以太网帧首部定义了一个16位的“类型”字段。当接收方(也称目的主机)收到一个以太网帧时,数据就开始在协议栈中自下而上传送。各层协议利用报文首部所携带的协议控制信息做相应的处理,然后去掉各层协议数据单元的首部,将封装的数据交给上层协议。每层协议都要
2014-07-31 01:14:35 773
原创 操作系统同步和异步 阻塞和非阻塞
这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.理解如下:同步和异步定义的是等待消息的机制,同步指的是自身主动询问或者关注某个消息是否产生,异步指的是当某个消息产生的时候通知自身阻塞和非阻塞定义的是等待消息时候的自身的状态,比如你只能一直等待某个消息不能去做别的表示为阻塞,假如你在等待消息的时候还可以进行别的任务活动表示异步异步操作是可以被阻
2014-07-29 12:34:57 965
原创 一个只能在堆产生对象的类实现
class NoStackObject{ protected: NoStackObject() { } ~NoStackObject() { } public: static NoStackObject* creatInstance() { return new NoStackObject() ;//调用保护的构造函数 } void dest
2014-07-28 23:36:50 569
转载 B树/B+树
B树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率
2014-07-28 20:13:03 1353
原创 Google很有意味的一道选择题
现在北京有一套房子,价格200万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万。如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子?A, 5年B, 7年C, 8年D, 9年E, 永远买不起
2014-07-26 01:24:44 660
原创 AB有序数组长度可以不同,元素可以重复,求第k大
问题:给定一个有序(非降序)数组A和一个有序(非降序)数组B,可含有重复元素,求两个数组合并结果中的第k(k>=0)个数字。这个题目出现了两个数组,有序的,不管怎样我们就应该首先考虑二分查找是否可行。若使用顺序查找,时间复杂度最低为O(k),就是类似归并排序中的归并过程。使用用二分查找时间复杂度为O(logM+logN)。二分查找的具体实现过程请参考实现代码与注释。[cpp
2014-07-25 22:45:40 876
转载 从内存管理、内存泄漏、内存回收探讨C++内存管理
原文地址:http://www.cr173.com/html/18898_all.html文章很棒,忍不住转载了内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对 C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关
2014-07-04 23:19:17 669
原创 C++的单例模式
看了head first 设计模式 1 class Singleton 2 { 3 private: 4 static Singleton* m_instance; 5 Singleton(){} 6 public: 7 static Singleton* getInstance(); 8 }; 9 10 Singleton* Singleton::g
2014-07-04 21:51:48 526
原创 一个程序运行后的内存分配
1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和
2014-07-04 00:43:35 706
原创 探索C++对象模型之struct和class区别
从语法上来讲,class和struct做类型定义时只有两点区别: (1)默认继承权限,如果不指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理; (2)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。以上两点也是struct和class最基本的差别,也是最本质的差别;
2014-07-03 19:55:56 709
原创 C++多态
一、多态 C++多态通过继承和动态绑定实现。继承是一种代码或者功能的传承共享,从语言的角度它是外在的、形式上的,极易理解。而动态绑定则是从语言的底层实现保证了多态的发生——在运行期根据基类指针或者引用指向的真实对象类型确定调用的虚函数功能!通过带有虚函数的单一继承我们可以清楚的理解继承的概念、对象模型的分布机制以及动态绑定的发生,即可以完全彻底地理解多态的思想。为了支持多态,语
2014-07-03 18:38:25 541
原创 String类的一个实现
参考林锐博士的高质量工程、String 类的原型如下class String{ public: String(const char *str=NULL); //构造函数 String(const String &other); //拷贝构造函数 ~String(void); //析构函数
2014-06-30 19:58:47 637
原创 单链表的快速排序
#include#includeusing namespace std;//单链表节点struct SList{ int data; struct SList* next;};void bulid_slist(SList** phead, int n) //指向指针的指针{ int i; SList* ptr = *phead;
2014-06-30 17:15:44 584
转载 如何阅读书籍
如何阅读书籍MAR 15TH, 2014 | COMMENTS摘要这篇文章从如何阅读书籍出发,简单讨论了如何选择书籍、是否阅读原版和阅读数量这几个常见问题,然后自己的阅读问题进行了分析和总结。注意“如何阅读”指“What to read”而非“How to read”,Mortimer J. Adler的怎样阅读一本书对How to read有着精彩
2014-06-30 03:03:19 605
转载 转一篇谷歌大牛peng pong的算法学习之路
首页最新文章在线课程业界开发IT技术设计创业IT职场在国外频道更多 >- 导航条 -首页最新文章在线课程业界开发IT技术- Linux- UNIX- MySQL- NoSQL- 数据库- Git- 算法- 测试- 信息安全- Vim设计- 网页设计- UI设计- 交互设计- 用户体验创业IT职场在国
2014-06-30 01:41:22 1617
原创 对比下用哈希表和红黑树的set
首先set,不像map那样是key-value对,它的key与value是相同的。关于set有两种说法,第一个是STL中的set,用的是红黑树;第二个是hash_set,底层用得是hash table。红黑树与hash table最大的不同是,红黑树是有序结构,而hash table不是。但不是说set就不能用hash,如果只是判断set中的元素是否存在,那么hash显然更合适,因为set 的访问
2014-06-29 22:54:57 1062
原创 TCP三次握手、四次挥手
服务端的TCP进程先创建传输控制块TCB,准备接受客户端进程的连接请求,然后服务端进程处于LISTEN状态,等待客户端的连接请求,如有,则作出响应。 1、客户端的TCP进程也首先创建传输控制模块TCB,然后向服务端发出连接请求报文段,该报文段首部中的SYN=1,ACK=0,同时选择一个初始序号seq=i。TCP规定,SYN=1的报文段不能携带数据,但要消耗掉一个序号。这时,TCP客户
2014-06-27 23:47:53 683
原创 浏览器键入URL后的流程
1)浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址; 2)解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接; 3)浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器; 4)服务器给出相应,把对应的html文本发送给浏览器; 5)释放
2014-06-27 15:26:13 629
原创 快速排序 递归和非递归
#include #include using namespace std; int partition(int *arr , int low , int high) { int pivo = arr[low]; while(low { while(low = pivo)
2014-06-25 20:21:36 506
原创 大数相乘算法
# include# include# include void multiply(char* a,char* b,char* c){ int i,j,ca,cb,* s; ca=strlen(a); cb=strlen(b); s=(int*)malloc(sizeof(int)*(ca+cb));
2014-06-25 16:26:58 552
原创 二叉树的各种非递归遍历
1.前序非递归:二叉树的非递归前序遍历,前序遍历思想:先让根进栈,只要栈不为空,就可以做弹出操作, 每次弹出一个结点,记得把它的左右结点都进栈,记得右子树先进栈,这样可以保证右子树在栈中总处于左子树的下面。 */ void PreOrder_Nonrecursive(BiTree T) //先序遍历的非递归 { if(!T)
2014-06-24 17:46:55 524
转载 多进程和多线程的优缺点
在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linu
2014-06-24 07:18:42 580
原创 i++是原子操作吗
什么是原子操作?所谓原子操作,就是"不可中断的一个或一系列操作" 。在确认一个操作是原子的情况下,多线程环境里面,我们可以避免仅仅为保护这个操作在外围加上性能开销昂贵的锁,甚至借助于原子操作,我们可以实现互斥锁。 那么,GNU C中x++是原子操作吗?请看下面一段代码:[cpp] view plaincopyprint?#in
2014-06-24 00:05:42 2572
原创 virtual函数调用例题
以下程序输出是什么???class classA{public: classA() { clear(); } virtual ~classA() { } void clear() { memset(this , 0 , sizeof(*this)); } virtual void func() { printf("func\n"); }};class
2014-06-19 20:57:06 753
原创 由二叉树转换成二叉排序树
struct STreeNode{int key;STreeNode* left_child;STreeNode* right_child;};void InsertBST(STreeNode* t , int key){ if(NULL == t) { t = new STreeNode; t->left_child = t->right_child = NULL; t->key = key;
2014-06-17 19:03:45 1700
原创 volatile
下面的函数有什么错误:[cpp] view plaincopyint square(volatile int *ptr) { return *ptr * *ptr; } 编译器将产生类似下面的代码:[cpp] view plaincopyint square
2014-06-17 18:18:36 568
原创 get和post
使用 GET,form 中的数据将编码到 url 中,而使用 POST 的 form 中的数据则在 http 协议的请求正文中传输,另外使用 Get 方法提交的数据有长度限制。在使用上,当且仅当请求幂等(请求任意次返回同样的结果,本质是请求本身不会改变服务器数据和状态)时使用 GET,当请求会改变服务器数据或状态时(更新数据,上传文件),应该使用 POST。 对于服务器来说,G
2014-06-10 21:30:48 558
原创 C++`构造函数 `头文件`等
:::C++类A的构造函数初始化A::A:x(0){}1.初始化列表会把类对象里全部数据成员都初始化一遍,然后再在{}函数体里面改变初始值2。所以最好写在:后面的初始化列表里,避免做同样的事情两次。3.初始化是按定义时的顺序执行的4.类里的内部类型数据成员如果在局部内定义对象将会被缺省初始化,如int a,这些将用内存本身的值,所以构造函数都应该提供内部类型的数据成员初始值;
2014-02-20 21:57:55 2727
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人