2016年8月25日
摘要:
(1)定义函数模板(function template) 函数模板是一个独立于类型的函数,可以产生函数的特定类型版本。 // implement strcmp-like generic compare function template <typename T> int compare(const
阅读全文
posted @ 2016-08-25 23:08
已停更
阅读(2024)
推荐(1)
摘要:
模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的。 模板分为类模板与函数模板,特化分为全特化与偏特化。全特化就是限定死模板实现的具体类型,偏特化就是如果这个模板有多个类型,那么只限定其中的一部分。 那么下面3句依次调用类模板、全特化与偏特化: 对于函数模
阅读全文
posted @ 2016-08-25 20:31
已停更
阅读(482)
推荐(0)
摘要:
坑爹的list容器size方法--为了splice居然把复杂度设计为O(N)? 能用empty的时候,不要用size empty可以保证常量复杂度,但list的size不保证 链表长度必须要遍历全部的链表元素才能获得,而不是用一个变量来表示 list size调用distance,distance内
阅读全文
posted @ 2016-08-25 19:36
已停更
阅读(666)
推荐(0)
2016年8月24日
摘要:
求最大公约数 交换swap 求某个区间随机数 分割数组Partition 分解质因数(面试题考过) 不用加号计算两数和 strcpy 二分查找
阅读全文
posted @ 2016-08-24 19:18
已停更
阅读(266)
推荐(0)
摘要:
二者都是内存拷贝 memcpy内存拷贝,没有问题;memmove,内存移动?错,如果这样理解的话,那么这篇文章你就必须要好好看看了,memmove还是内存拷贝。那么既然memcpy和memmove二者都是内存拷贝,那二者究竟有什么区别呢? 区别 memcpy 实现代码,注意以下几点: 1.确定函数原
阅读全文
posted @ 2016-08-24 14:45
已停更
阅读(917)
推荐(0)
2016年8月23日
摘要:
N的阶乘(N!)中的末尾有多少个0? N的阶乘可以分解为: 2的X次方,3的Y次方,4的5次Z方,.....的成绩。由于10 = 2 * 5,所以M只能和X和Z有关,每一对2和5相乘就可以得到一个10,于是M = MIN(X,Z),不难看出X大于Z,因为被2整除的频率比被5整除的频率高的多。 要计算
阅读全文
posted @ 2016-08-23 23:48
已停更
阅读(1780)
推荐(0)
2016年8月21日
摘要:
什么是线程池 处理大量并发任务,一个请求一个线程来处理请求任务,大量的线程创建和销毁将过多的消耗系统资源,还增加了线程上下文切换开销。 线程池通过在系统中预先创建一定数量的线程,当任务请求到来时从线程池中分配一个预先创建的线程去处理任务,线程在处理任务之后还可以重用,不用销毁,从而节省系统资源。对于
阅读全文
posted @ 2016-08-21 21:43
已停更
阅读(4631)
推荐(0)
摘要:
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序
阅读全文
posted @ 2016-08-21 11:24
已停更
阅读(433)
推荐(0)
2016年8月15日
摘要:
动态规划 通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 基本思想 若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少
阅读全文
posted @ 2016-08-15 10:49
已停更
阅读(62393)
推荐(12)
2016年8月13日
摘要:
用户模式下的方法有:原子操作(例如一个单一的全局变量),临界区。 内核模式下的方法有:事件,信号量,互斥量。 临界区 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么 在有一个线程进入后其他所有试图访问此临界区的线程将
阅读全文
posted @ 2016-08-13 20:52
已停更
阅读(3589)
推荐(0)