自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C/C++:复制构造函数

C++中,三种调用复制构造函数的情况:一个对象以值传递的方式传入函数体{\red{一个对象以值传递的方式传入函数体}}一个对象以值传递的方式传入函数体一个对象以值传递方式从函数返回{\orange{一个对象以值传递方式从函数返回}}一个对象以值传递方式从函数返回一个对象需要通过另一个对象初始化{\green{一个对象需要通过另一个对象初始化}}一个对象需要通过另一个对象初始化自定义复制构...

2019-06-30 22:03:04 792

原创 C/C++:explicit关键字

explicit 常用来防止隐式调用构造函数。

2019-06-30 21:53:27 1860

原创 C/C++:空类

空类默认产生:默认构造函数{\orange{默认构造函数}}默认构造函数复制构造函数{\orange{复制构造函数}}复制构造函数析构函数{\orange{析构函数}}析构函数赋值函数{\orange{赋值函数}}赋值函数取地址函数{\orange{取地址函数}}取地址函数空类默认1个字节大小{\red{空类默认1个字节大小}}空类默认1个字节大小含有虚函数的空类默认8个字节大小(6...

2019-06-28 12:08:06 452

原创 C/C++:类函数执行顺序

class A{ public: A(){cout<<"A+"<<endl;} public: ~A(){cout<<"A-"<<endl;}};class B :public A{ public: B(){cout<<"B+"<<endl;} public: ~B(){cout<&...

2019-06-28 12:01:33 1702

原创 C/C++:静态static

静态成员不能在类内初始化。{\red{静态成员不能在类内初始化。}}静态成员不能在类内初始化。静态成员函数不含this指针。{\orange{静态成员函数不含this指针。}}静态成员函数不含this指针。...

2019-06-28 11:48:41 109

原创 C/C++:类初始化

初始化列表:列表初始化顺序与变量声明顺序一致,与列表顺序无关。必须用初始化列表的情况:1−const和reference类型成员变量{\red{1-const 和 reference 类型成员变量}}1−const和reference类型成员变量2−基类构造函数{\red{2-基类构造函数}}2−基类构造函数...

2019-06-28 11:39:14 1313

原创 C/C++:class与struct

C中的struct只能定义数据成员,不能定义成员函数。C++中的struct可以定义函数,这样完全是为了兼容C程序。struct默认public成员。class默认private成员。

2019-06-28 10:10:39 138

原创 C/C++:纯虚函数

含有纯虚函数的类不可实例化,相当于java中的接口类。提供一个统一的函数名字,在派生类中必须实现每一个纯虚函数,来提供不同的实现方案。接口类的逻辑在于,某些类实例是没有意义的,例如动物,派生老虎是有意义的,但单纯实例化动物是没有意义的。...

2019-06-28 01:26:28 1918

原创 C/C++:虚继承

虚继承和虚函数就如java和javascript的关系。虚继承的类内存结构和正常继承的类内存结构有很大不同。虚继承解决菱形继承中多个相同基类二义性问题。例如,B继承A,C继承A,D继承B和C,则在D中有两份A,分别来自B和C。当执行基类A函数时,就会出现二义性。一种解决方法为,使用类命名空间,例如B::a()和C::a()区分。另一中解决方法为,使用B虚继承A,C虚继承A,则D中只有一...

2019-06-28 01:20:58 194

原创 C/C++:虚函数

构造函数与虚函数顺序:{\red{构造函数与虚函数顺序:}}构造函数与虚函数顺序:class A{ public: A(){a();} virtual void a(){ cout<<"A"<<endl; }};class B : public A{ public: virtual void a(){...

2019-06-28 01:10:22 1349

原创 C/C++:三种继承方式

public继承:不改变基类成员属性。protected继承:将基类成员public变为protected,即继承链上可访问,类外不可访问。private继承:基类所有成员变为private,只能在当前类访问。private继承相当于单一组合,尽量能用组合用组合。{\red{private继承相当于单一组合,尽量能用组合用组合。}}private继承相当于单一组合,尽量能用组合用组合。...

2019-06-27 21:34:49 1104

原创 C/C++:模版

分为函数模版,类模版。使用模版的意义在于复用代码,但可能会出现代码膨胀,即目标二进制代码臃肿,影响运行效率,例如:template<class T,int num>class A{};int main(){ A<int,1> a1; A<int,2> a2; return 0;}模版第二个参数应该分离出去,变为类内参数。特化:{\red...

2019-06-27 21:01:04 206

原创 C/C++:vector

动态数组实现。当push_back超出当前vector最大容量时(即vector.capacity()值),容量变为两倍,原有元素赋值到新内存空间中,性能下降。vector.size()表示现有数组元素数量。当已知vector最大需要当最大容量时,建议vector.reserve();...

2019-06-27 20:09:38 349

原创 牛客:小易喜欢的数列

动态规划入门题:#include<bits/stdc++.h>using namespace std;#define maxn 100005#define LL long long#define MM(x) memset(x,0,sizeof(x));#define mod 1000000007LL N,M;LL dp[12][maxn];// dp[i][j] ...

2019-06-23 03:48:13 265

原创 Codeforce:Round 568 div2 D

模拟:要么删第一个,要么删第二个,要么删之后中间的第一个和第二个需要确定等差值#include<bits/stdc++.h>using namespace std;#define maxn 200005int n;struct Node{ int id; long long v;};Node num[maxn];bool cmp(const ...

2019-06-20 01:01:00 170

原创 LeetCode:Shortest Common Supersequences

dp:#include<bits/stdc++.h>using namespace std;void printVec1(vector<int>& v);void printVec2(vector<vector<int>>& v);class Solution {public: string shortest...

2019-06-19 12:27:25 157

原创 LeetCode:Confusing Number II

暴力搜索:#include<bits/stdc++.h>using namespace std;void printVec1(vector<int>& v);void printVec2(vector<vector<int>>& v);class Solution {bool doit(long long num,i...

2019-06-18 22:08:33 442

原创 LeetCode:HighFive

模拟题:#include<bits/stdc++.h>using namespace std;void printVec1(vector<int>& v);void printVec2(vector<vector<int>>& v);class Solution {struct Node{ int id; ...

2019-06-18 21:11:14 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除