摘要:std::function是可调用对象的包装器,它最重要的功能是实现延时调用: 由上边代码定义std::function<int(int)> fr2,那么fr2就可以代表返回值和参数表相同的一类函数。可以看出fr2保存了指代的函数,可以在之后的程序过程中调用。这种用法在实际编程中是很常见的。 std 阅读全文
C++11之for循环的新用法
2016-12-06 20:12 by jiayayao, 26596 阅读, 4 推荐, 收藏,
摘要:C++使用如下方法遍历一个容器: 其中auto用到了C++11的类型推导。同时我们也可以使用std::for_each完成同样的功能: 现在C++11的for循环有了一种新的用法: 上述方式是只读,如果需要修改arr里边的值,可以使用for(auto& n:arr),for循环的这种使用方式的内在实 阅读全文
链表的逆置(又称反转)
2016-12-06 00:00 by jiayayao, 2339 阅读, 1 推荐, 收藏,
摘要:链表的逆置常作为应届生面试题,主要考察求职者对链表的理解,还有思维能力。逆置的思路主要是保存几个临时的指针变量,其实好多面试题都可以通过保存临时变量的方式来解决。对于此类问题,建议一定不要死记硬背,因为死记硬背一定会随着时间的推移而忘记,建议按照pPrev,pNode,pNext依次向后推移的思路理 阅读全文
冒泡法排序
2016-12-05 23:30 by jiayayao, 913 阅读, 1 推荐, 收藏,
摘要:冒泡法排序,顾名思义,整个排序过程实际上一次次的冒泡过程,每次冒泡都会进行相邻数字的比较,如果Left>Right,则交换,一次冒泡完毕后,数组最大的值就会被安置到最后的位置。然后进行第二次冒泡,这次冒泡就会将次大值安置到n-1的记录上。依此类推。 冒泡法排序的算法复杂度O(n2). C++代码如下 阅读全文
从活字印刷术的角度理解面向对象编程
2016-12-04 22:24 by jiayayao, 552 阅读, 0 推荐, 收藏,
摘要:《大话设计模式》开头从活字印刷术的例子讨论面向对象的好处,个人觉得非常形象。活字印刷术主要体现了面向对象的如下几点: 1. 可维护:修改的话只需要修改某一个字; 2. 可复用:别的字可以重新拿来用; 3. 可扩展:如果要加字,只需要刻新字; 4. 灵活性好:横排竖排都可以。 通过封装、继承、多态把程 阅读全文
设计模式之观察者模式
2016-12-04 19:46 by jiayayao, 452 阅读, 1 推荐, 收藏,
摘要:观察者模式又称发布-订阅(Publish/Subscribe)模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性 阅读全文
解决ambiguous symbol命名空间中类名、变量名冲突的问题
2016-12-04 11:41 by jiayayao, 5962 阅读, 0 推荐, 收藏,
摘要:最近在将一个复杂的工程集成到现有的项目中。编译时发现,有的变量名冲突了,提示就是xxxx ambiguous symbol,并且在编译输出时,指明了两个文件当中特定的变量名或者类名相同。出现这个编译错误的原因是,在工程中加载了两个头文件,这两个头文件中包含相同的类名或者变量名,解决及避免出现此类错误 阅读全文
解决Android后台清理APP后,程序自动重启的问题
2016-12-04 11:22 by jiayayao, 15290 阅读, 0 推荐, 收藏,
摘要:最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启。现象很奇怪,有的手机(HTC)后台清理后,程序会再次重启,而有的手机(小米)则不会。猜想可能是小米手机内部做了处理,当执行后台清理后,就不允许对应的APP重启了。 Debug后发现,APP内部有一个Service,在 阅读全文
vim快捷键整理(转载)
2016-12-03 22:20 by jiayayao, 1301 阅读, 0 推荐, 收藏,
摘要:一、移动光标 1、左移h、右移l、下移j、上移k2、向下翻页ctrl + f,向上翻页ctrl + b3、向下翻半页ctrl + d,向上翻半页ctrl + u4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^5、移动光标到下一个句子 ),移动光标到上一个句子(6、移动到段首{,移动到 阅读全文
设计模式之单例模式
2016-12-03 22:04 by jiayayao, 633 阅读, 1 推荐, 收藏,
摘要:单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。其构造过程由自身完成,可以将构造方法定义为private型的,这样外界就只能通过定义的静态的函数Instance()构造实例,这个函数的目的就是返回一个类的实例,在此方法中去做是否有实例化的判断。客户端不再考虑是否 阅读全文