面试八股文
0x3fffffff
这个作者很懒,什么都没留下…
展开
-
技巧:如何用rand7实现rand10
把7看成一个筛子。这等于掷出两个筛子,将筛子的两个数字看成一个7进制的数字的两位,得到range :00~66(7进制),一共49个数字。将0~39这40个数字,分成10份,对10取余即可。通用方法:如何用数字A实现B;用logA B上取整计算数字位数,得到整体数字取值范围。范围对B做整除,得到有效数字范围。有效数字按B份等分即为所求。...原创 2021-12-09 23:36:34 · 109 阅读 · 0 评论 -
c++的一些小技巧
1、关于继承的小技巧继承是c++的特性,它赋予了多重特性。而在一些特殊情况时,一定要对此进行限制。有一些关键字可以做到:class 类名 = final ;//指定这个类无法继承类名() = default ; //指定这个构造函数是默认构造函数类名(类名 &a) = delete ; //指定这个拷贝构造函数无法使用,想不到delete还有这种妙用explict 类名(标准类型 & a) //显式指定构造函数,主要是非pod类型需要显式类型转换。2、编程时可以用ty原创 2021-11-14 23:59:05 · 842 阅读 · 0 评论 -
预编译&&编译动作
1、预编译阶段有哪些动作? 预编译阶段主要完成:在对code进行重塑,把源码塑造成另一种形式。有可能是替换,例如define,有可能是开关,控制某个头文件或者某段代码是否显示。 例如,#ifdef、endif用来控制一段的开启或者跨平台的服务,用#if 0 #endif调试一段code的情况。#define、typedef用来直接替换某个数据类型、某个类似函数。#include用于某个头文件包含,值得一提的是,可以把大型常量数组存储在inc文件中,再include该文件。...原创 2021-11-11 23:42:21 · 408 阅读 · 0 评论 -
剑指刷题总结
一、简单版1、栈和队列:用两个栈实现队列、包含min函数的栈(即用第二个栈单独记录当前长度的min)2、链表:从尾到头打印链表、反转链表、复杂链表复制(映射,或者在每个链表节点N的后面+上N`);3、字符串:替换“ ”为%20;字符串拼接...原创 2021-10-09 16:44:46 · 73 阅读 · 0 评论 -
编程出错问题-算法方法
最好不要用for(i = 0; i <a.size();i++),而用for(i = 0 ; i <size;i++),因为a.size(),对于数据结构来说,运行过程中可能会改变大小,比如栈会出栈入栈。所以用变量存储初始大小原创 2021-08-01 02:33:22 · 281 阅读 · 0 评论 -
c++八股文
1、声明和定义的区别答:声明(declare)未必会申请内存空间,定义会申请内存空间;对于普通的常规类型,比如int a,声明即定义,但A a 和A a = new A()有明显区别;2、指针和引用的区别答:指针是真的开辟内存空间存储地址,引用是原变量的别名。3、sizeof是在编译时取值还是在运行时取值?对于支持查看动态数组的c99及以后,是运行时取值;其他为编译时取值。4、程序运行内存分配代码区:二进制代码,不可更改常量区:const修饰的字符。静态区:静态变量和全局原创 2021-07-23 17:10:40 · 1057 阅读 · 0 评论