- 博客(24)
- 收藏
- 关注
原创 时间复杂度和空间复杂度
O() 大O法表示的是算法运行的快慢(类似于运行次数的抽象归类)O(n*logn),这样的包括快速排序——一种速度很快的排序方法。O(logn),也叫对数时间,这样的时间复杂度常用于二分查找。O(n^2),这样的算法包括选择排序——一种较慢的排序方法。3、如果最高阶数存在,且系数不为1,则去除该项数的常数。2、在修改后的运行次数函数中,只保留最高阶数。常见的复杂度类型,以及常见的大O复杂度。O(n),也叫线性时间,常用于简单查找。1、用常数1取代运行中的所有加法常数。常数阶、对数阶、线性阶、平方阶、
2025-04-15 21:30:31
29
原创 继承类在QT里面的应用(一)
客户端与服务器创建链接后,在CLIENT内创建TcpSocket,便于pdu通信协议写入tcpsocket,被服务器接收。(4) 客户端创建消息接收函数,抓取响应PDU,做出响应的结果(例如:MessageBox::info……(1) 该ui类必须继承CLIENT,作为该类的子类,这样才能调用client内创建的tcpsocket。(3) 服务器创建消息接收函数,经过数据库函数处理后,创建对应的“RESPOND”响应pdu。创建新的UI类时,如何在该UI类内调用tcpsocket来实现服务器响应?
2025-04-14 09:29:13
136
原创 C++中的构造函数
构造函数在创建对象时,编译器会自动调用函数,无需手动调用。构造函数和类名相同,没有返回值且不写void。构造函数的调用,在对象创建的过程中进行实现。构造函数可以有参数,因此可以发生重载。
2024-10-30 17:09:47
329
原创 C++中类的访问权限
public://公有权限:类内(类内的成员函数内访问),子类,对象访问(通过"."(点)访问)protected://受保护的:类内访问,子类访问。private://私有的:类内访问。
2024-10-30 16:55:22
231
原创 C++中的类和对象
C++中,类的内存只包括非静态成员变量,成员函数和成员变量分开存储,且静态成员变量单独存放在静态区。具有相同性质的==对象==,我们可以抽象为==类==,人属于人类,车属于车类。利用类和动态数组进行结合,统计管理信息(代替结构体和链表的结合)C++认为==万事万物都是对象==,对象有其属性和行为。C++面向对象的三大特征为:==封装、继承、多态====类==类似于结构体,具有结构体的部分内容和功能。float不是对象,b是对象;例如:人可以是对象,车也可以是对象;封装:将属性和行为进行封装,
2024-10-30 16:54:34
116
原创 用最简单的方法理解 多继承
类的创建需要创建内存,所以要在空类中去创建一个字符进行占据内存;多继承会出现二义性的问题,一般通过作用域来实现。空类的大小(size)=1;
2024-07-15 19:57:05
88
原创 哈希表原理
对于val=99的这个数据,经过哈希函数求得,应放入key=2的位置,但是key=2的位置存在数据,因此将会一位一位的向后进行查找,直到发现val为空的哈希表位置,并且将其存入。值(val) :类似于数组的元素,可以为任意类型哈希表不存在元素访问溢出的情况,只要访问未创建的元素,便会创建一个值为0的键值对。1、输入域 f(string)无穷大(输入可以是字符串),输出域有限(int类型的范围限制)3、如果输入的参数是相同的,那么输出一定是相同的,没有任何的随机成分(查找、删除、修改)
2024-07-14 17:48:52
1704
原创 《时间复杂度和空间复杂度》简要说明
O() 大O法表示的是算法运行的快慢(类似于运行次数的抽象归类)O(n*logn),这样的包括快速排序——一种速度很快的排序方法。O(logn),也叫对数时间,这样的时间复杂度常用于二分查找。O(n^2),这样的算法包括选择排序——一种较慢的排序方法。3、如果最高阶数存在,且系数不为1,则去除该项数的常数。取决于算法执行过程中所需要的辅助空间占输入空间的大小。2、在修改后的运行次数函数中,只保留最高阶数。O(n),也叫线性时间,常用于简单查找。常数阶、对数阶、线性阶、平方阶、
2024-07-14 17:42:48
217
原创 七大经典算法排序系列(二)
最坏的情况:该数组要进行依次排序,因此为O(n^2)想比于冒泡排序的优点:大大减少了数据位置移动的次数。最好的情况:该数组本来就具备排序,因此为O(n)【3 2 3 1 1】排序后,3会排在3的前面。
2024-07-14 17:40:23
124
原创 this指针::
一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。this 是指向当前对象的指针,那个对象调用包含this指针的函数,this指向那个对象。this指针在函数调用的时候,指向的是对象;(由此修改对象中的成员变量)this一般在构造函数中使用,用来区分成员变量和参数。
2024-06-21 10:32:15
222
原创 创建类型链表:
2、堆区的内存大,而且在作用域结束的时候,不会被自动释放,适合进行数据的存储。1、指针定义在栈区,属于局部变量,在作用域结束的时候,自动释放;
2024-06-21 10:31:29
313
原创 C++析构函数
再没有实现析构函数的时候,编译器会自动生成析构函数(什么也不干的析构函数)析构函数是释放指针所指向的堆区内存,防止内存泄漏。在对象被释放的时候,会自动调用析构函数。【先调用析构函数,再释放指针】【先调用析构函数,再释放指针】没有返回值,也不写void。名字和类名相同,前面有~
2024-06-21 10:30:59
132
原创 C++构造函数
是给成员是赋值的构造函数和类名相同,并i且没有返回值且不写void构造函数在创建对象时,编译器会自动调用函数,无需手动调用构造函数可以有参数,因此可以发生重载构造函数的调用,在对象创建的过程中进行实现。
2024-06-21 10:29:34
191
原创 拷贝构造函数调用时机
*什么是拷贝(复制)构造函数?用已经存在的对象拷贝新的对象拷贝构造函数在什么时候被调用?用已经存在的对象拷贝新的对象当对象以值的形式作为函数参数当对象以值的形式作为函数的返回值深拷贝和浅拷贝有什么区别?浅拷贝就是简单的赋值操作,会造成同一块堆区内存被释放两次成员变量有指针的时候使用深拷贝,深拷贝会重新申请一块堆区内存解决了同一块内存被释放两次的错误*/class Aint n;int *p;public:A()A(int n)//编译器提供默认拷贝构造为浅拷贝。
2024-06-21 10:25:18
308
原创 用最简单的方式了解C++类中的成员权限
在该代码中,我们创建了类A的对象w,并且对类A的对象w中的公共成员变量a进行了赋值操作,因此展现了公共成员变量的权限:可以在类外进行调用。在该代码中,我们创建了类A的对象w,并且调用了对象w的print()函数,因此展现了公共成员变量的权限:可以在类内进行调用。顾名思义,公共成员就是没有任何的限制。可以在任意地方进行调用,赋值,修改的成员。在上述代码中,我们创建了公共成员变量a,受保护成员变量b,私有成员变量c;#####对于类的成员变量的剩下两个权限的讲解,我们下篇见!可以在类内,类外,子类中进行调用。
2024-06-17 22:02:06
493
原创 用最简单的方式理解函数重载
函数重载的定义:在同一个作用域内,使用不同的函数名,实现不同的函数功能,而且编译器不会发生报错的情况。函数重载的条件以及注意事项:1、在同一个作用域内2、相同的函数名.3、函数参数的个数、顺序、类型不同4、函数重载与返回值无关。
2024-06-13 19:21:24
843
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人