小试牛刀

  今天,第一次写博客,也希望自己能坚持下去!

  交流&&学习!

1.c++父类和子类

碰到的问题:虚父类(接口父类)调用子类对象,但是函数是子类自己定义的,开始以为父类能拿个调用的。

解释:

  只有父类定义了接口(实函数或者虚函数,子类覆盖了或者重载了),父类才能够调用,这个以后在研究。之前看过父类和子类结构的构造,里面有函数指针的概念,希望下次能够从这里分析清楚,也重新学习一下这里的概念。

2. 一个效率问题的验证

问题:

  计算当前时间和之前某个时间点是不是不在同一个月?进行判断

void func_calc2(time_t tCurrent, int nDays)
{
  time_t tStart = 1268604000;//2010-3-15

  bool bRet;

  time_t tPassed = tStart + nDays * 86400;
  time_t tDiff = tStart - tPassed;
  if (tDiff/86400 > 31 || tDiff/86400 < -31)
    bRet = true;
  else{
    tm tmCurrent = *localtime(&tCurrent);
    tm tmPassed = *localtime(&tPassed);
    if (tmCurrent.tm_year != tmPassed.tm_year)
      bRet = true;
    else if(tmCurrent.tm_mon != tmPassed.tm_mon)
      bRet = true;
  }
}

函数func_calc2就是多加了一个31天的判断,因为如果两个时间点相差时间是在31天以上,肯定不在一个月了,按照这样的理解就加了多了一个判断

if (tDiff/86400 > 31 || tDiff/86400 < -31)
    bRet = true;

测试结果:

  循环了100 000 000次,每次随机参数nDays的数值,结果是没有加上面判断的用了54秒,而自己加了判断的只用了4秒。高兴一下^_^

3. 总结:

(1)这只是个开始,希望自己不断的进步和学习,也希望同时在学习的道友们都在进步;

(2)以后要不断的注意效率问题,不断的实验,不断的动手;

(3)这里的方法可能不是最好的,也希望大侠们狂喷,给出更好的办法,自己学习,谢谢!

4. 今天收帖。^_^

posted @ 2013-10-20 18:05  上山老人  阅读(266)  评论(0编辑  收藏  举报