(剑指offer)替换空格 题目要求:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路:要实现O(n)的算法: (1)首先算出此字符串的空白字符总数(new),字符总数(oldLength)。 一个空格要替换成”%20”,则说明替换一个空格要多2个字符; 那么替换完所有空格字符串的大小为=oldLeng...
(剑指offer) 在有规律的二维数组中查找元素 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路首先先与二维数组的最左下角元素进行比较,该元素比所要查找的元素大,则往上寻找;比所要查找的元素小,则往右查找。class Solution {public: bool Find(int target, vec...
宏和函数 1、宏的好处:方便程序的修改可通过两方面(改数据,和字符串长度过长的时候)使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时,我们可以用较短的有意义的标识符来写程序,这样更方便一些提高程序的运行效率使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。2.宏
智能指针 今天我们要学习的内容是智能指针,在此之前我们先来看两行代码 int *p=new int;delete p;new一个对象,再delete掉它,这样看起来没什么问题,但是有时候程序代码过长,new对象了,但是忘记delete了或者是发生下面的情况int *p=new int;bool isEnd=true;if(isEnd)return;delete p;这样在d...
继承及菱形继承 1、什么是继承?继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各本质不同的东西。用通俗的话来说,继承就是将具有公共属性的对象抽象成一类(父类),子类继承父类,然后子类再实现不同于父类的属性。2、继承是一种复用手段,在继承关系基类继承派生类的成员,由此达到复的目的。三种继承关系下基类成员的在派生类的访问关系变化如图所示:3、继承复...