摘要: https://blog.csdn.net/wuyuander/article/details/114070480?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.pc_releva 阅读全文
posted @ 2022-03-07 13:20 sunshine_gzw 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 先看几个常规的初始化: 以上都为常规初始化,即调用类的构造函数进行初始化。 initialization list,即用初始化列表进行初始化,打破了原有的初始化格局,令初始化更加直观: 这种方式的构造大体如下: 阅读全文
posted @ 2022-01-23 12:40 sunshine_gzw 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 对于一个给定的序列,如果按照常规遍历每个元素: 或者: 有了for语句,可以使之变得简单: 再比如L: 阅读全文
posted @ 2022-01-23 12:14 sunshine_gzw 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 在C++中,有四类特殊的成员函数,分别为:默认构造函数,默认析构函数,默认拷贝构造函数,默认赋值运算符。他们的作用为创建、初始化、销毁、拷贝对象。 虽然在类A中什么都没有定义,但是编译会通得过,因为编译器会认为有必要,于是会为我们默认创建。 如果我不想要编译器为我们创建,于是可以=delete函数, 阅读全文
posted @ 2022-01-23 11:34 sunshine_gzw 阅读(78) 评论(0) 推荐(0) 编辑
摘要: final主要有两个功能: 1.阻止子类的继承。 2.阻止虚函数的覆写。 阅读全文
posted @ 2022-01-23 11:10 sunshine_gzw 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 对于一个含有虚函数的父类,子类继承并覆写了父类的虚函数,一个好的编译器可能会有提示功能,比如: 上面的mouseMoveEvent是斜体,表明要覆写父类的虚函数,但是如果其中的名字不小心写错了,编译器没有能够给出斜体的提示,此时override的作用便派上用场了,他的作用就是告诉编译器我这个函数是要 阅读全文
posted @ 2022-01-23 11:01 sunshine_gzw 阅读(176) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> using namespace std; void f(int) { cout<<"f(int)"<<endl; } void f(bool) { cout<<"f(bool)"<<endl; } void f(void*) { cout<<"f(void*) 阅读全文
posted @ 2022-01-23 10:40 sunshine_gzw 阅读(92) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h> #include<time.h> typedef struct _DNode { int data; struct _DNode* prev; struct _DNode* next; }DNode; DNode* CreateDNodeList() { DNod 阅读全文
posted @ 2022-01-11 11:29 sunshine_gzw 阅读(28) 评论(0) 推荐(0) 编辑
摘要: int binarySearch(int *p,int find,int l,int h) { int mid; while(l<=h) { mid=(l+h)/2; if(find==p[mid]) { return mid; } else if(find>p[mid]) { l=mid+1; } 阅读全文
posted @ 2022-01-10 17:11 sunshine_gzw 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 思想:选定中轴,然后然后比中轴元素小的放在左边,大的放在右边,然后依次递归左边和右边,直到所有中轴归位。 void quicksort(int* p,int l,int h) { if(l<h) { int pivot=p[l]; int lo=l,high=h; while(lo<high) { 阅读全文
posted @ 2022-01-10 16:28 sunshine_gzw 阅读(24) 评论(0) 推荐(0) 编辑