main函数中被注释掉的部分,ss结果为constchar*类型,但是传参给Cchar2int就变成垃圾内容,cout结果为0 why? 状似与str2Cchar中直接c_str一样的错误 猜测与变量的生存周期、内存管理相关 待解答 Read More
transform函数在anlgorithm里,四个参数分别为,①被转换字符串头、②被转换字符串尾、③用来存放转换后的字符串头、④转换类型 在转换大写的例子中,如果没有resize会报错,因为需要事先确定用来存放转换后字符串的大小足够装得下。 参考:http://www.ijophy.com/201 Read More
利用algorithm库里的max_element和min_element可以得到vector的最大最小值,配合distance函数可以得到最大值的位置 输出结果: 9 6 1 0 当vector中有多个最小最大值时,位置取的是第一个 Read More
leetcode刷题的时候,需要用到,已知整数A,B,且A>B,判断AB是否是同一数量级的。 第一想到的是不停地除以10,得到每个数字的数量级再进行比较,太麻烦; 转而向转化成字符串比较,还是麻烦而且耗时,请教了别人,得到这个方法,豁然开朗,为啥自己之前没想到: 对整数取10为底的对数之后再取整,就 Read More
C++常见的内存分配方式有三种: 从静态存储区分配,这里主要是存储局部static对象,类的static成员以及定义在函数之外的变量; 从栈内存分配,这里主要是存储函数内的非static对象; 从堆内存动态分配 其中,静态存储区以及栈内存中的对象,都是由编译器自动创建和销毁,而堆内存中的对象都是由程 Read More
对一个数组中的元素按照顺序构建二叉树,就形成了一个(二叉)堆。(二叉树是虚拟的,并不是真的建立二叉树) 表示堆的数组A有两个重要属性:A.heapSize,表示堆里面有多少元素,数组里有多少元素在堆里 A.length,表示数组长度 例如数组A= {1,2,3,4,5,6,7,8,9,10},此时A Read More
I 动态绑定、多态、虚函数、对象的静态类型与动态类型 1、基类中有两种函数: 派生类直接继承不做改变 派生类重新定义成适合自身的版本覆盖掉基类的函数 派生类直接继承不做改变 派生类重新定义成适合自身的版本覆盖掉基类的函数 对于第一种就是普通的基类成员函数,第二种通常通过将该函数定义为虚函数来实现。 Read More
刷leetcode 263.uglynumber时,代码如下: 测试用例里用到的数据是-2147483648,然后报错error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型 这是因为int的最小值是-2147483648,最大值是2147483647,但是我们不能用int n = Read More
看耗子叔文章学习虚函数表(http://blog.csdn.net/haoel/article/details/1948051)的时候被例子的第一句惊到了 多亏RR相助,弄懂了。 这行代码宏定义了一个函数指针类型Fun,函数指针,指的是指向函数的指针 第一个void指的是函数返回值类型,第二个voi Read More
运算符重载,主要是简化类类型运算,能够让我们对类对象直接用运算符进行运算。基本语法: 简单地说,就是给类对象定义自己的加减乘除等等操作符。同时,作为为了类对象的操作而重载的运算符,它是类的成员函数,或者含有至少一个类类型参数,例如: (VS2013) 另外,重载运算符分两种①重载运算符是类的成员函数 Read More