自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wonz

最怕一生碌碌无为,还说平凡难能可贵。Email:wonz.wang@outlook.com

原创 C++ 学习笔记(21)同名隐藏与赋值兼容规则

同名隐藏 #include<iostream> using namespace std; class Base{ public: Base():x(0){ } ~Base(){ } public: void show(){ cout&lt...

2018-07-31 20:44:50 132 0

原创 C++ 学习笔记(20)钻石继承与虚基类

防止二义性,所以加限定。 #include<iostream> using namespace std; class B1{ public: B1():n(0){ } public: int n; }; class B2{ public: B2():n...

2018-07-31 16:49:33 129 0

原创 C++ 学习笔记(19)派生类的构造函数与析构函数调用顺序

创建子类对象,会先去创建父类对象。 #include<iostream> using namespace std; class Base{ public: Base(){ cout<<"Create Base!"...

2018-07-31 16:24:44 215 0

原创 C++ 学习笔记(18)继承访问属性细说

继承是多态的基础。 #include<iostream> using namespace std; class Base{ private: int x; }; class D : public Base{ //子类公有继承父类 public: int y...

2018-07-31 15:49:30 126 0

原创 C++ 学习笔记(17)new的三种形式详解

new operator  //new操作符 operator new  //操作符new,只负责开辟空间 placement new  //定位new #include<iostream> using namespace std; /* new operator...

2018-07-31 11:55:30 818 0

原创 C++ 学习笔记(16)动态内存开辟new_delete

malloc: 1.自己计算大小。 2.做强制转换。 3.进行开辟成功与否的判断。 4.用free释放   new: 1.不需要进行强制转换。 2.不需要判断开辟成功与否。 3.new释放用delete。 4.释放数组,前面要加[]。 #include<ios...

2018-07-29 11:58:13 140 0

原创 A1001:A+B Format(20')

思路:相加后,先判断是否为负数,负数单独输出'-',然后转成正数。用辗转相除法存进sum1数组。再逆序输出,每次逢3的倍数输出一个','。 注意:要特判相加的和为0,单独输出。 代码: #include<cstdio>...

2018-07-28 19:54:40 122 0

原创 C++ 学习笔记(15)类模板

掌握信息: 1.声明类模板的时候,要给出模板信息。 template<typename Type> class ListNode{ } 2.类模板里面的所有函数,全都是模板函数。所以在外面实现的话,要加上模板信息。 template<typen...

2018-07-28 16:47:48 134 0

原创 C++ 学习笔记(14)函数模板

函数模板 #include<iostream> using namespace std; //函数模板 template<typename Type> //Type是一种类型 Type Max(Type a,Type b){ cou...

2018-07-28 15:49:19 97 0

原创 C++ 学习笔记(13)static方法和const方法

静态成员是共享的。 #include<iostream> using namespace std; class Test{ friend void fun(Test &); public: Test(int d = 0):data(d){ ...

2018-07-28 14:52:02 116 0

原创 C++ 学习笔记(12)友元函数

友元函数。 #include<iostream> using namespace std; class Test{ friend void Show(); //只在类中写出friend public: Test(int d = 0):data(d){ } ...

2018-07-28 11:14:27 128 0

原创 B1048:数字加密(20')

思路:用字符串数组存储。首先要反转一下字符串,因为是从个位开始计算的。然后i下标从0开始,所以奇偶也要反一下。其次,考虑到,A,B位数可能会不一样,不用单独拿出来讨论,直接在大循环中进行就行,不足的位补0即可。 注意:取字符串中的数,要减去‘0’。整数存进字符串中,要加上‘0’。 代码: ...

2018-07-27 21:03:44 138 0

原创 C++ 学习笔记(11)运算符重载

运算符重载:使代码看上去更人性化。 #include<iostream> using namespace std; //复数 class Complex{ public: Complex():m_real(0),m_imag(0){ } Complex(in...

2018-07-27 17:04:30 154 0

原创 A1073:Scientific Notation(20')

思路:同乙级1024。先找到 E 的位置,用 flag_E 标记一下。然后计算 flag_E+2 位置一直到末尾的数,计算指数大小 exp。然后根据 E 后面的 “+-” 号分类讨论。 “-”:先判断字符串第一项是否为 “-”,“-” 输出,“+” 不输出。然后先输出 “0.”。再输出格式为...

2018-07-26 22:05:23 108 0

原创 B1024:科学计数法(20')

思路:先找到E的位置,用flag_E标记一下。然后计算flag_E+2位置一直到末尾的数,计算指数大小exp。然后根据E后面的“+-”号分类讨论。 “-”:先判断字符串第一项是否为“-”,“-”输出,“+”不输出。然后先输出“0.”。再输出格式为0.000XXX。小数点后连续0的个数为exp...

2018-07-26 22:02:15 121 0

原创 C++ 学习笔记(8)赋值函数

使用引用,不需要执行拷贝构造函数,时间和效率上都有了提高。 可以不加const,一般都加,表示常引用,保护参数。 this代表当前地址,*this代表当前地址的元素。 #include<iostream> using namespace std; class ...

2018-07-26 12:59:15 179 0

原创 C++ 学习笔记(10)深拷贝与浅拷贝

例子 #include<iostream> using namespace std; class Test{ public: Test(int d = 0):data(d){ cout<<"Create...

2018-07-26 11:04:55 135 0

原创 C++ 学习笔记(9)函数的调用优化

深入理解四大函数:构造函数、拷贝构造函数、赋值函数、析构函数。 测试1: #include<iostream> using namespace std; class Test{ public: Test(int d = 0):data(d){ ...

2018-07-26 09:44:58 162 0

原创 C++ 学习笔记(7)拷贝构造函数

一些基础知识 #include<iostream> using namespace std; class Test{ public: //Test t; Test(int d = 0):data(d){ cout<&a...

2018-07-25 11:11:31 166 0

原创 C++ 学习笔记(6)引用

引用,又称为别名。 #include<iostream> using namespace std; void swap(int *x,int *y){ //x和y会分配新的内存空间,有新的地址 int tmp = *x; *x = *y; ...

2018-07-25 10:27:30 112 0

原创 B1014:福尔摩斯的约会(20')

思路:首先用一个二维字符数组Day存储星期几(注意,这里数组第二维大小不能等于3, 而要大于3,否则会编译错误)。先找出前两个字符串中第一个相同的大写字母,这里字母范围应该限定在A~G之间,而不是A~Z。对应到Day数组输出星期。然后,继续在前两个字符串中,找剩下的里面第一个相同的字符,数字也...

2018-07-24 22:07:27 102 0

原创 A1061:Dating(20')

思路:同B1014。首先用一个二维字符数组Day存储星期几(注意,这里数组第二维大小不能等于3, 而要大于3,否则会编译错误)。先找出前两个字符串中第一个相同的大写字母,这里字母范围应该限定在A~G之间,而不是A~Z。对应到Day数组输出星期。然后,继续在前两个字符串中,找剩下的里面第一个相同...

2018-07-24 22:07:17 93 0

原创 B1002:写出这个数(20)

思路:用字符串存储,累加之后,辗转相除法,得到每一位。注意这时得到的是逆序,所以要倒着存储,再输出。注意特判,输入为0的时候,输出应该是"ling",牛客网有这个测试点。 代码: #include<cstdio> #include&...

2018-07-24 21:04:35 143 0

原创 B1031:查验身份证(15')

思路:用数组存储权重,Z,M。然后每次输入进行判断,先判断前17位是否是整数,只要有一项不是就退出循环,根据j值即可判断是否合理。都是整数的话,就逐项乘以对应权重。循环结束之后,对11取模,再对应到Z,再对应M,和最后一位进行比较,如果不等的话,也是不合理的。每次找出一个合理的身份,pass+...

2018-07-24 20:41:20 165 0

原创 C++ 学习笔记(5)构造函数的3个作用

作用 1.构造对象。 2.初始化对象。 3.类型转换。 include<iostream> using namespace std; class Test{ public: Test(int d = 0){ //构造函数名和类名一致 ...

2018-07-24 10:57:03 896 0

原创 C++ 学习笔记(4)构造函数和析构函数

构造函数 数据多为私有,初始值为随机值,要想初始化,要用公有函数进行初始化。 更好的初始化方法:构造函数。 要求: 1.函数名要和类名一致。 2.构造函数没有返回值,也不能写void。 3.实例化对象之后,构造函数自动被调用,且只被调用一次(针对一个对象,有3个对象就调用3次,分别调用...

2018-07-24 10:21:53 197 0

原创 B1021:个位数统计(15')

思路:一开始用的long long型,发现测试3一直过不去,然后改用字符串存储,就AC了。注意学会使用字符转整型数的方法。 代码: /* //第三个测试点过不去 #include<iostream> using namespace std; int main(...

2018-07-23 22:32:58 259 0

原创 A1058:A+B in Hogwarts(20')

思路:和B1037类似,不过这题是计算和,所以要考虑溢出,就改用long long型变量。 代码: #include<cstdio> int main(){ long long G1,S1,K1,G2,S2,K2; //改用long long型,防止溢出 ...

2018-07-23 21:45:04 102 0

原创 A1027:Colors in Mars(20')

思路:这是一道进制转换题,读懂题意就知道,只需把输入转化成13进制数就行。但要注意第一位没有数要输出0,以及怎么输出A,B,C。 代码:(开始学C++了,代码风格可能是C和C++混搭,会慢慢调整的) #include<iostream> using names...

2018-07-23 21:14:36 98 0

原创 C++ 学习笔记(3)this指针

存储 CGoods c1,c2...cn; 数据自己单独存储,但是方法可以公用,即函数只需存储一份,节省空间。 方法共享,但是不知道是哪一个对象。   this指针 即使对象名一样,用this指针依旧可以赋值。this指针代表当前对象的地址。 this是一个常量,不能对它进行赋值。t...

2018-07-23 15:22:46 161 0

原创 C++ 学习笔记(2)初识类与对象,类的定义与对象的和创建

一、初识类与对象 实体->抽象类别:抽象出实体的本质(比如:储蓄人员能够开户,销户······),得到储蓄类。 抽象类别->类: class CX {}; 类->对象:(ATM机)模拟现实世界的功能。   二、类的定义与对象的创建 C+...

2018-07-23 14:22:31 182 0

原创 C++ 学习笔记(1)C++四大特性

1.抽象 对具体事物的定义过程。   2.封装 把数据和操作数据的方法捆绑在一起的过程。 例如:把函数放进结构体中进行操作。 struct Test { int a; double b; char c; void SetData(int xa,dou...

2018-07-23 10:19:29 2068 0

原创 C++ 学习笔记(0)C与C++的区别

利用暑假的时间,正式开始学习C++,记录一下自己的学习笔记~ 网课地址:http://edu.51cto.com/course/4940.html#tab2 1.文件类型 C:.c C++:.cpp   2.头文件与命名空间 C: #include<stdio.h&...

2018-07-23 10:04:40 309 0

原创 A1019:General Palindromic Number(20')

思路:利用进制转换模板先转化为b进制数。这里注意要用do while型,用while型可能会部分正确。同时,得到转换后的位数i。然后,进行回文判断,只需比较i/2次。只要有一次循环不符合回文条件,就输出“No”,直接退出循环。最后输出b进制数要逆序输出,不是回文的话如果正序输出就会出错。 代...

2018-07-22 22:24:48 88 0

原创 B1037:在霍格沃兹找零钱(20')

思路:将P和A统一到Knut单位,即Galleon*17*29,Sickle*29。然后先比较输出带不带负号。然后,分别输出G值,S值,K值。 注意:G值=差值/(17*29),不是%。S值=(差值-G值*17*29)/29。K值=差值%29,也可以用差值-G值*17*29-S值*29。 ...

2018-07-22 21:57:00 139 0

原创 A1031:Hello World for U(20')

思路:列出前几种情况(N=5,6,7,8,9,10),找规律,发现n1始终是 (n+2)/3 向下取整 。n3和n1相等,因为左右两边相等,利用公式n2=n+2-n1-n3。 注意:一开始我没想到找规律,而是根据题意,遍历找到n1的max,但是失败了,看了晴神的思路,发现原来这么神奇。还是要...

2018-07-22 21:24:06 82 0

转载 GitHub的README.md基本语法

文章转自:https://blog.csdn.net/guodongxiaren/article/details/23690801 本文在 GitHub 的演示地址: https://github.com/guodongxiaren/README ----------------------...

2018-07-22 16:12:13 273 0

原创 GitHub新建文件夹

之前上网查了好多,尝试了好多次,都没有成功,这次意外就成功了。 首先,进入自己的仓库,点击右上角Create new file这个选项。  然后,输出文件夹名字之后,加一个'/' 这时,可以添加一个README.md 点击,Commit new file就行...

2018-07-21 22:42:39 641 0

原创 B1027:打印沙漏(20')

思路:找规律,找到沙漏从只有1个的那层到最多的那层一共有:2*i*i-1。于是,输入n之后,遍历找到i,即沙漏的一半层数,记为col。然后根据每行的空格和符号规律,对应输出。 代码: #include<cstdio> int main(){ int n,co...

2018-07-21 22:28:57 89 0

原创 A1036:Boys vs Girls(25')

思路:每次输入,单独更新女生的最高分和男生的最低分,记录数组下标i。输出时女生和男生都要判断是否为Absent,所以girl和boy初值可以设为-1,便于判断。 注意:gender输入时要用%c,如果设成了%s,则要用strcmp进行比较。字符串输入不用&。 代码: #...

2018-07-21 21:34:08 121 0

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