萌新萌新
萌新萌新
全部文章
分类
C++学习(9)
Lua学习(4)
学习(15)
读书笔记(3)
归档
标签
去牛客网
登录
/
注册
大家一起学习啦
记录自己的成长
全部文章
(共29篇)
为什么虚析构能正确释放资源?
1.虚函数的实现原理: 在有虚函数的类中,类最开始的部分是虚函数表的指针,这个虚函数表存放了虚函数的地址。 当子类继承父类时,同时也会继承父类的虚函数表,如果子类重写了父类的虚函数,将会将从父类中继承的虚函数表的地址改为重写后的地址。 然后程序在运行时,编译器会根据对象的类型去初始化这个虚函数表指针...
C++
2022-03-28
0
456
哈希冲突,如何解决哈希冲突?
哈希冲突的产生原因 由于哈希函数产生的哈希值是有限的,而数据可能比较多,导致通过哈希函数处理的数据仍对应的相同的值,这就产生了哈希冲突。 哈希冲突解决方法 1.开放定址法 线性探测、再平方探测、伪随机探测。 线性探测:按顺序决定值时,如果某个数据已经存在,则在原来值的基础上往后再加一个单位。 再平方...
2022-03-27
0
552
C++的sort函数
#include "stdafx.h" #include<iostream> #include <math.h> #include <algorithm> using namespace std; bool f1(char c1, char c2) --从大到小...
C++
2022-03-26
0
374
说一说静态变量,全局变量,局部变量的特点
1.位置 全局变量是定义在文件内,函数外的变量。 局部变量是定义在函数内,函数的参数,代码块中。 静态变量是使用static修饰,可以修饰局部,全局或者修饰类成员。 2.内存位置 全局和静态变量存储在静态存储区,如果未初始化就初始化未0; 局部变量存在栈空间。 3.生命周期 局部变量:出了作用域立刻...
C++
2022-03-26
0
455
malloc和new的底层实现
1.malloc的底层实现原理 当开辟的空间<128k时,调用brk()函数;当>128k的时候,调用mmap()函数。malloc采用内存池的的管理方式,以减少内存碎片。先分配一块较大的内存作为堆区,然后将堆区分为多个内存块,当用户申请内存的时候,直接从堆区分配一块合适的空闲块。每个空...
C++
2022-03-25
0
713
内联函数和宏函数的区别
1.内联函数是代码比较简单的函数,不能包含复杂的控制语句,并且不能调用自身。 2.宏是在预编译的时候,替换目标字符串,简单的说就是替换代码。而内联函数是在编译的时候进行代码插入,编译器会在每次调用内联函数的时候进行代码展开,这样减少了函数的调用开销,提高了效率。 3.宏定义是不会进行安全检查的,而内...
2022-03-25
0
734
Lambda表达式
Lambda表达式是C++11的一个新的语法糖,它可以让我们方便的定义和创建匿名函数 1.完整的声明格式 [capture list] (params list) mutable exception-> return type { function body } capture list:捕获...
C++
2022-03-25
0
379
static关键字的作用
//1.修饰普通变量:表示直到程序结束都只有1块内存,且该变量仅仅本文件内可以访问。 //2.修饰类成员变量:表示,该变量属于类,不属于任何一个对象。(该成员变量可以通过类名:访问,或者对象名.访问) //3.修饰类成员函数:表示该函数属于类,不属于任何一个对象。(切记,该函数不能通过this调...
C++
2022-03-25
0
359
C与C++的区别
1.c是C++的子集,但是C++又有了很多的新特性,如引用、智能指针、auto变量等。 2.C++是面对对象的,C是面向过程的。 3.C++更加安全,引入了四种类型转换。 4.C++支持函数重载,C不支持。 4.可复用性高,引入的模板的概念。
C++
2022-03-25
0
392
Lua闭包
local function test() local iCount = 0; return function () iCount = iCount + 1 return iCount end end local test1 = test()...
2022-03-24
0
337
首页
上一页
1
2
3
下一页
末页