自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++继承

继承继承方式:public, protected, private基类成员在子类中的访问权限:a. 基类中的私有成员在子类中不可见;b. 基类其他成员在子类中的访问权限为min{成员在基类中本身的访问权限, 子类的继承方式}protected, private区别:a. 都表示在类外不可见b. protected在子类中是可见的,子类可以复用protected 成员c. private成员虽然在子类中是不可见的,但子类包含私有成员一般采用public继承内置函数构造函数a.

2020-07-02 19:18:01 89

原创 vector和list的区别

vector与list区别baivector为存储的对象分配一块连续的地址du空间,因此对vector中的元素随机访问效zhi率很高。在vecotor中插入或者删除掉某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将容量扩展2倍,这样对于小对象来说,效率是很高的。list中的对象是离散存储的,随机访问某个元素需

2020-06-23 16:12:54 713

原创 函数模板和类模板

模板编程 : 增加代码的通用性, 编写与具体类型无关的通用代码函数模板template < class / typename 参数1, class / typename 参数2, … >返回值 函数名 (参数列表) {}函数模板不是一个可以执行的函数,只有通过实例化产生的具体类型的函数代码才可以执行函数模板实例化1 . 隐式实例化 : 编译器根据具体参数进行自动推导,然后根据推导出的具体参数类型生成可执行的代码2 .显示实例化 : 显示指定需要生成的参数类型 : 函数

2020-05-31 23:07:28 142 1

原创 内存管理

malloc realloc callocmalloc : void* malloc (size_t size);用来申请size字节大小的堆内存relloc : void* realloc (void* ptr, size_t size);为ptr所指向的内存重新分配一段size大小的空间, 存在原地扩容和非原地扩容, 缩小空间指针指向不变原地扩容 : 与要增加的空间在一个数量级上时,在原有空间上增加空间,指针指向不变非原地扩容 : 与要增加的空间不在一个数量级上, 释放原有空间, 重

2020-05-31 22:16:00 95

原创 友元类及友元函数

友元函数可以访问所在类的私有成员友元的声明不受限定符限制, 可以在类的任意位置声明友元类友元类的所有成员函数变成另一个的成员函数友元关系是单方面的,如果需要相互构成友元关系,则需要相互声明友元关系不能传递内部类可以通过对象访问外部类的私有成员, 类似于友元类,外部类不可以访问内部类的私有成员内部类可以直接访问外部类的静态成员class C{public: //D是内部类, D是C的友元类 class D { public: void displayC(con

2020-05-31 21:33:06 122

原创 const和static

const和static参考链接#include <iostream>using namespace std;class Time{public: Time(int h = 1, int m = 1, int s = 1) :_h(h) , _m(m) , _s(s) { cout << "Time(int h = 1, int m = 1, int s = 1)" << endl; }private: int _h; int _m

2020-05-26 09:25:05 82

原创 运算符重载

赋值运算符重载//类内默认有赋值运算符, 浅拷贝//参数类型: // 值: 传参发生拷贝, 且不能优化自赋值的逻辑 // 引用:不发生拷贝, 可以优化自赋值的逻辑 // 返回值类型: // void: 不能进行连续赋值 // 引用/值: 可以进行连续赋值, 如果是引用,效率更高 // return *this; class Date{ public: Date(int y = 2000, int m = 1, int d = 1) :_year(y), _

2020-05-26 08:55:52 91

原创 C++学习(二)

内存对齐//#pragma pack(4) //修改默认对齐数#include <iostream>using namespace std;class A{public: int _a; // 4 char _c; // 5 double _d; // 16 float _f; // 20 // 最高原则:结构体/类大小是最大成员的整数倍 24 // 有结构体定义,但是不算具体对象,所以不占大小 struct B { int _a; ch

2020-05-26 08:16:36 73

原创 C++初识

命名空间解决命名冲突命名空间定义1.namespace + 命名空间名称 + {}2.嵌套定义: namespace + 名称 + {namespace + 名称 + {}}3.同一个命名空间可以定义多个片段命名空间内成员的使用方式1.完整的作用域 + 成员 : std::cin2.引进成员 : using namespace std::cin3.展开命名空间 : using namespace std(不建议使用, 所有成员都暴露在全局域中,可能会导致成员重定义)命

2020-05-10 00:09:05 63

原创 排序

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-05-02 16:24:44 86

原创 岛屿数量

给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。例如:11110110101100000000只有一个岛屿11000110000010000011有三个岛屿深搜如下:#include <iostream>#include &l...

2020-04-11 20:15:06 150

原创 二叉树和完全二叉树

二叉树规律:假设根节点的高度为0二叉树是每个节点至多只有两个节点的树深度为i所在的层至多有 2^i个节点高度为k的二叉树至多有2^(k+1)-1个节点n0表示度为0的节点, n2表示度为2的节点,存在n0 = n2 + 1对所有树有:节点个数 = 边数+1完全二叉树规律节点数为N的完全二叉树,其高度为 (向下取整),也就是说该树一共有logn + 1 层。对于完全二叉树,若...

2020-04-10 18:17:52 350

原创 机器人的运动范围

leetcode机器人的运动范围(C++)思路:深度搜索遍历即可完成class Solution {public: //定义vi[i][j]是否被访问过 int vi[101][101] = {0}; //检查是否超出k值 bool inq(int i, int j, int k){ int sum = 0; while(...

2020-04-08 16:25:35 83

原创 生命游戏

Leetcode生命游戏(C++)思路:其实就是一个仿广度搜索遍历,把每个细胞旁边的活细胞数得出来就很容易解决了//增量数组int X[] = {0, 0, 1, -1, 1, -1, 1, -1};int Y[] = {1, -1, 0, 0, 1, -1, -1, 1};class Solution {public: void gameOfLife(vector<...

2020-04-08 15:53:44 108

原创 无头单向不循环链表和带头双向循环链表

无头单向不循环链表#include <stdio.h>#include <stdlib.h>// slist.htypedef int SLTDateType;typedef struct SListNode{SLTDateType data;struct SListNode* next;}SListNode;// 动态申请一个...

2020-03-25 16:07:11 74

原创 Sine之舞

资源限制时间限制:1.0s 内存限制:512.0MB问题描述  最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。  不妨设  An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)  Sn=(…(A1+n)A2+n-1)A3+…+2)An+...

2020-03-19 16:14:29 73

原创 通讯录(C)

C实现的简易通讯录虽然代码有点冗余,但条理还是很清晰的.用结构体数组实现的固定人数,可用链表实现成可增长结构.#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>struct ...

2020-02-29 23:33:27 75

原创 字符函数和字符串函数

一. 字符串函数· 求字符串长度 strlen· 长度不受限制的字符串函数 strcpy, strcat, strcmp· 长度受限制的字符串函数 strncy, strcat, strncmp· 字符串查找 strstr, strtok· 错误信息报告 strerror二. 字符函数三. 内存操作函数· memcpy· memmove· memcmp· memsetC...

2020-01-04 01:37:52 65

原创 vs2017使用调试技巧

一、基本的操作。1、启动调试。可以通过VS的调试(Debug)菜单启动调试。点击调试菜单下的“启动调试”或者按F5键启动。如果你已经在代码中加入了断点,那么执行会自动开始。注:退出调试快捷键shift+F5。2、断点(Breakpoints)。断点用于通知调试器何时何处暂停程序的执行。通过点击左边栏或者按F9键在当前行添加断点。在加断点之前,你需要知道你的代码将会出现什么错误,在什么地方...

2019-12-14 22:23:12 783

原创 数组越界导致for循环死循环

#include <stdio.h>int main(){ int i = 0; int arr[] = {1,2,3,4,5,6,7,8,9,10}; for(i=0; i<=12; i++) { arr[i] = 0; printf("hello bit\n"); } return 0;}i = 10时,数组就已经越界,进行...

2019-12-14 21:27:48 449

原创 结构体

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.struct student{ int a; char s; int* arr;}stu;struct 是结构体类型的关键字struct student 是用户定义的结构体类型a, s,arr 都是结构体成员名stu是结构体对象结构体对象的生成struct student stu1, *s, stu[5];结...

2019-12-11 23:01:09 155

原创 指针

操作符 指针操作符 引用一下操作符指针 相当于一个房间,有着房间号和房间大小.房间号(由指针体现)房间大小(由指针类型体现)举例#include <stdio.h>int main(){ int a = 0x11223344; char *pc = (char*)&a; *pc = 0; printf("%x\n", a); return...

2019-12-09 00:39:06 114

原创 扫雷游戏的实现(C语言)

扫雷代码如下// 扫雷游戏#define _CRT_SECURE_NO_WARNINGS#define MAX_ROW 9#define MAX_COL 9#define MAX_MINE_COUNT 10#include <stdio.h>#include <stdlib.h>#include <time.h>int Menu(){...

2019-12-05 00:45:50 71

原创 C语言实现三子棋游戏

三子棋游戏//三子棋游戏#define _CRT_SECURE_NO_WARNINGS#define MAX_ROW 3#define MAX_COL 3#include <stdio.h>#include <stdlib.h>#include <time.h>// 游戏开始菜单int Menu(){ printf("---------...

2019-12-02 21:30:28 65

原创 C语言练习题(七)

C语言训练题递归和非递归分别实现求第n个斐波那契数。编写一个函数实现n^k,使用递归实现写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:...

2019-11-28 13:37:44 140

原创 罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...

2019-11-27 22:55:35 48

原创 leetcode刷题(二)

26.删除排序数组中的重复值给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。// numsSize 数组大小,最后需返回数组大小numsSizeint removeDuplicates(int* nums, int numsSize){ if(nu...

2019-11-21 21:32:58 135

原创 C语言基础训练题(六)

C语言基础训练题完成猜数字游戏。写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应...

2019-11-20 11:42:03 135 1

原创 C语言基础训练题(五)

C语言训练题实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。使用函数实现两个数的交换。实现一个函数判断year是不是闰年。创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。实现一个函数,判断一个数是不是素...

2019-11-19 01:10:06 150

原创 C语言基础训练题(四)

C语言基础训练题1.屏幕上输出以下图案:/* * *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** * for (int i = 0; i <= 6; i++) { for (int j = 0...

2019-11-18 21:55:48 103

原创 Git和Gtihub的安装

Git 和Github 的安装github账号的创建github账号注册在这个网址创建一个Github账号,便可创建仓库储存代码.Git的安装下载git安装包和TortoiseGit.TortoiseGit安装包(解压码:0220)Git安装包(解压码ev4k)安装包安装好后进入要版本控制的文件夹目录中,右键能看到Git的操作便安装好了....

2019-11-18 20:22:31 226

原创 leetcode刷题(一)

回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。bool isPalindrome(int x){ int tmp = x; long long y = 0; //避免整形数据溢出 if(x < 0 ) return false; else{ while(x != 0) { ...

2019-11-16 12:11:22 100

原创 C语言基础训练题(三)

C语言基础训练题将数组A中的内容和数组B中的内容进行交换。(数组一样大)计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值。编写程序数一下 1到 100 的所有整数中出现多少次数字91. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)#include "stdio.h"int main1()...

2019-11-15 17:27:58 136

原创 C语言基础训练题(二)

C语言基础训练题1.给定两个整形变量的值,将两个值的内容进行交换。2.不允许创建临时变量,交换两个数的内容3.求10 个整数中最大值。4.将三个数按从大到小输出。5.求两个数的最大公约数。编译环境:vs20171.给定两个整形变量的值,将两个值的内容进行交换。2.不允许创建临时变量,交换两个数的内容第1题和第2题很多解法,例如用临时变量辅助交换,取地址交换,异或操作交换,这里我...

2019-11-11 00:39:59 135

原创 C语言基本训练题(一)

C语言基础训练题打印100~200 之间的素数输出乘法口诀表判断1000年—2000年之间的闰年1.打印100~200之间的素数穷举法解题#include "stdio.h"int main(){ int num = 100, i; for (; num < 201; num++) { i = 1; while (++i < num) { ...

2019-11-10 23:49:59 105

原创 C/C++学习路线和计划(小白)

所谓“C生万物,编程之本”,C语言是最接近计算机的高级语言,学习C语言是很有必要的。如果你学习过C语言,你就能学习现在任何的高级编程语言。因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等;C语言已经存在很多年了,它有广泛的使用团体并且有大量的现成代码可以利用。C语言是唯一一个向你阐述指针的本质的语言。而C#和Java干脆跳过了指针这个题目。可是指针确实使C语言变得更加强大...

2019-11-09 17:21:22 360

空空如也

空空如也

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

TA关注的人

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