
面经
文章平均质量分 54
吃肉夹馍不要夹馍
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++内存对齐
32位系统上int是4字节, char是1字节, 上述一个结构体占用内存应该是 4+ 1=5byte. 但是结果却是8。以32位系统为例,存取粒度为4字节,该处理器只能从地址为4的倍数的内存开始读取数据。内存对齐能够提高CPU读取数据的速度,减少CPU访问数据的出错性, 避免指针访问出错。一般的处理器以2,4,6,16字节甚至32字节为单位来取内存,即。上述结构体中最长数据类型为int 4字节。和结构体最长数据类型中较小的那个。对齐模数 gcc中默认对齐模数。有效对齐值(对齐单位): 给定值。原创 2024-07-24 10:51:19 · 354 阅读 · 0 评论 -
运行时多态和编译时多态
在运行时才能确定调用哪个函数,动态绑定。实际上是子类重新定义了父类的虚函数, 父类的指针就根据赋给它的不同子类的指针, 动态的调用属于子类的虚函数, 这样的函数调用在编译期无法确定。: 派生类重新定义父类中的函数, 函数名,参数列表,返回类型都必须和父类中被覆盖的函数严格一致, 只有函数体不同。静多态在编译时就确定调用函数的类型,函数重载就是一个典型的静多态。: 派生类的函数屏蔽了与其同名的基类函数。多态可以分为静多态和动多态。原创 2024-07-19 18:20:11 · 492 阅读 · 0 评论 -
虚函数表存放在哪里
总结: 虚函数表类似于类中的静态成员变量,和静态成员变量一样是全局共享的,属于一个类所有对象的,并不是某一个类特属的, 在linux/unix中 存放在可执行文件的只读数据段中。, 而虚函数指针是在对象实例化时候创建(调用构造函数时), 所以 **虚函数指针在运行时创建 ** , 将该类虚函数表的地址赋值给对象的虚函数指针。有虚函数的类, 改类的大小会增加一个指针的大小(32位系统是4字节, 64位系统是8字节)。一般分为五个区域: 栈区, 堆区,函数区(存放函数体等二进制代码), 全局静态区, 常量区。原创 2024-07-19 16:53:26 · 775 阅读 · 0 评论 -
求字符串中最早出现的次数最多的字符
首先考虑到使用map记录每个字符出现的次数, 遍历一遍字符串之后得到出现的最大次数。但是此时可能有很多个字符具有相同的最大次数, 所以再遍历一次字符串,得到最早出现的最大次数字符。在使用map的时候,会增加很多建表插入,计算hash的时间, 因为char和int是可以转换的, 所以直接使用数组其实也可以。实际上正向遍历字符串的时候是可以获取到最大次数和字符的,但是是最后出现的字符。如果反向遍历字符串,那么就可以得到最早出现的字符了。如 “aabbb” 返回 ‘b’“baab” 返回 ‘b’原创 2024-07-18 11:54:45 · 406 阅读 · 0 评论 -
New和malloc区别
New和malloc区别原创 2024-07-15 10:38:24 · 142 阅读 · 0 评论 -
反转链表并插值
反转链表 变体 面试题原创 2024-07-15 18:05:15 · 240 阅读 · 0 评论