- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 高效的插入排序
#include using namespace std;template//插入排序的辅助函数1inline void InnerInsert(RandomAccessIterator first,RandomAccessIterator last,T *);template//插入排序的辅助函数2inline void UnguardedInnerInsert(Ra
2012-11-22 20:50:35
399
原创 以相同概率输出0、1
//以相同概率输出0或1,其他1/N概率同理int f(){ int i = rand()%10; return (i}int g(){ int firstNumber = 0,secondNumber = 0; while(firstNumber == secondNumber) { firstNumber
2012-11-08 22:35:32
474
原创 单链表置逆
//C++11,其他版本将nullptr改为NULL或0即可templateclass List{ struct ListNode { T value; ListNode *next; ListNode(const T&_value,ListNode *_next = nullptr)
2012-11-06 15:36:20
590
原创 虚构造函数和虚析构函数
1.析构函数可以为虚函数,且基类的析构函数一般均为虚函数。 原因在于:通过基类指针delete *base;时,可以通过虚的析构函数来释放掉派生类独自占用的内存,避免资源泄露。2.构造函数不可为虚函数。 原因在于:构造函数是在对象完全构造之前运行的,在构造函数运行的时候,对象的动态类型还不完整。 构造一个对象的时候,必须知道
2012-11-05 20:20:46
775
原创 在字符串中找出第一个只出现一次的字符
/*在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b.没有则返回'#'*/#include #include using namespace std;char FindFirstOneTime(const string &str){ char result = '#'; map map; //考虑到字符串长度未必巨大,故使用map
2012-11-05 08:56:48
457
原创 C++中的new与delete
1: new operator(就是我们平时使用的new),会将对象产生于heap。(不但分配内存,还会为该对象调用构造函数)2:operator new。只为对象分配了内存,并没有调用构造函数。(STL中的默认空间配置器所使用的方法)3:重载operator new。当调用new之后,会自动调用重载的operator new,按照自己的方式分配空间,并初始化对象。(ps:我们可
2012-11-04 22:45:38
344
原创 在大量URL中,查找出现次数前K多的URL
#include #include #include #include #include #include using namespace std;using namespace stdext;void FindTopKTimes(const string &fileName){ifstream fin;fin.open(fileName.c_str
2012-11-04 15:52:16
634
原创 判断一个数组是否为二叉树的后序遍历
bool IsTree(vector::iterator &begin,vector::iterator &end){ if(distance(begin,end) == 1 || begin == end) return true; vector::iterator iter = end; --iter; vector::iterat
2012-11-04 13:39:02
540
原创 Sleep排序
vector SleepSort(vector &,int);void SleepSort(vector &vec){ vec = SleepSort(vec,0);}vector SleepSort(vector &vec,int){ vector result; vector threads; for(size_t i = 0
2012-11-03 18:56:47
597
原创 最长递增子序列(LCS)
templatevector::value_type> LCS(Iter begin,Iter end){typedef typename iterator_traits::value_type Type;int dis = distance(begin,end);vector temp(dis,1);vector result;vector path(dis);a
2012-11-03 18:54:03
415
原创 dynamic_cast .vs. static_cast && static_cast .vs. reinterpret_cast
dynamic_cast .vs. static_castclass B { ... };class D : public B { ... };void f(B* pb){D* pd1 = dynamic_cast(pb);D* pd2 = static_cast(pb); }If pb really points to an object of type D, th
2012-11-03 00:06:17
430
转载 求T的N次方
int Power(int T,int n){ if(n == 0) return 1; while((n&1) == 0) { T *= T; n>>=1; } int result = T; n>>=1; while(n != 0) { T *
2012-11-02 14:41:50
1469
原创 打印和为N的所有连续数列组合
void PrintComOfN(int n){ int first = 1; int last = 2; int sum = first + last; while(last { if(sum == n) { for(int i = first;i cout
2012-11-02 14:24:34
973
原创 TrieTree
#pragma once#include #include #include #include #include #include using namespace stdext;using namespace std;//#define _TRIETREE_SETclass TrieTree{#ifdef _TRIETREE_SETstruct
2012-11-01 18:21:53
518
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人