自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++-map和set系列容器

文章目录基础:1、set底层:迭代器:正向迭代器和反向迭代器:set的迭代器不能修改K值:为什么set不能修改K值呢?怎样才能修改呢?适用于set/map这类容器set的迭代器可以删除元素:erase()set的范围for:set的swap()和算法的swap():set的find()和算法的find():set的赋值:operator=()其他函数接口:2、map底层:pair结构:make_pair结构:make_pair和pair的区别:迭代器:正向迭代器和反向迭代器:map的迭代器不能修改K值(理由

2020-06-03 23:35:49 345

原创 C++-多态(虚函数、动/静态绑定...)

文章目录1、多态2、C++11 override和final3、抽象类4、多态的原理5、练习1、多态在继承中构成多态的必要条件:必须通过基类的指针或者基类的引用调用虚函数;被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写应用:重写               详细解释请点击:重载、重写、重定义链接在重写基类虚函数时,派生类的虚函

2020-05-18 17:49:06 299

原创 C++-继承(重载 重写 重定义、菱形继承...)

文章目录

2020-05-18 14:48:41 1278

原创 C++-封装(类大小、this指针、默认成员函数 ...)

文章目录1、访问限定符2、类和对象3、this指针1、访问限定符封装:C语言:自由管理C++:封装管理本质上是一种管理,将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互,控制访问权限。访问限定符:public、protected、privateC++中,class和struct的区别:class的默认访问限定符是private;struct是public(因为要兼容C)。public在类外可以直接被访问,protected和private在类外不

2020-05-18 07:23:18 319

原创 C++-重点基础(缺省参数、重载、引用和指针、inline、auto)

文章目录1、缺省参数2、函数重载3、引用和指针4、inline函数5、auto关键字(C++11)1、缺省参数概念:缺省参数是在声明或定义函数时,给函数的默认参数。缺省值必须是常量或者全局变量。如果调用该函数时给了实参,则函数用实参运算;如果没有实参,则用默认参数运算。全缺省:所有的参数都用缺省参数void func(int a = 1, int b = 2, int c = 3)func();func(10); func(10, 20); // 都正确func(10, 20,

2020-05-15 16:15:59 312

原创 Linux-僵尸进程、孤儿进程、守护进程

文章目录1、进程概念什么是进程? 1、进程概念什么是进程?进程就是操作系统对一个运行中程序的描述,通过这个描述完成对运行中程序的控制。

2020-05-14 17:16:11 393

原创 数据结构 - 归并排序、计数排序

1. 归并排序归并排序:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治算法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合成一个有序表,称为二路归并。具体方法:我们简要分析一下步骤:算法的代码片:void _MergeSort1(int* a, int left, int right,...

2020-05-12 10:55:12 173

原创 Linux-常用基础命令

文章目录1. ls指令1. ls指令操作对象:目录、文件功能:对于目录:列出该目录下的所有子目录和文件;           对于文件:列出文件名以及其他信息常用选项:-a   列出目录下的所有文件,包括以 . 开头的隐含文件。-d ...

2019-11-04 20:44:18 193 1

原创 数据结构-交换排序

1.冒泡排序冒泡排序:重复遍历数据序列,依次比较两个相邻的元素,如果它们的顺序颠倒,就把他们交换过来。具体方法:(升序)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要...

2019-10-29 19:40:38 796 1

原创 数据结构-选择排序

1. 直接选择排序直接选择排序:每一趟都从数据元素中选出最小(或最大)的一个元素,并将其存放在序列的起始位置(或末端位置),直到将所有数据元素排完。具体方法:首先遍历找到序列中最大或最小的元素(结合自己的排序选择元素);将找到的元素与序列第一个或最后一个元素进行交换;重复上述过程,直至序列只剩下一个元素。 我们看一下排序简要过程: 原序列:5 1 2 4 3...

2019-10-29 00:03:23 243

原创 C/C++ 内存管理

文章目录1. 动态内存函数1.1 malloc和free1.2 calloc和free1.3 realloc1.4 总结2. 我们平时在定义数组时,如果不给定数组长度,我们将无法在栈上为数组开辟空间,所以必须指定长度,该空间是固定的,并在编译时分配内存空间。 1. 动态内存函数 1.1 malloc和free 1. mallocmall...

2019-10-05 20:12:11 274

原创 C++-模板

 泛型是通过参数化类型来实现在同一份代码上操作多种数据类型,模板是泛型编程的基础。1. 函数模板函数模板的格式:template < typename T1, typename T2,…,typename Tn >+返回值类型 函数名(参数列表){}2. 类模板...

2019-10-05 15:46:42 132 1

原创 数据结构-插入排序

文章目录1、插入排序1.1 直接插入排序1.2 希尔排序2、选择排序2.1 选择排序2.2 堆排序3、交换排序3.1 冒泡排序3.2 快速排序4、归并排序4.1 归并排序5、计数排序1、插入排序1.1 直接插入排序1.2 希尔排序2、选择排序2.1 选择排序2.2 堆排序3、交换排序3.1 冒泡排序3.2 快速排序4、归并排序4.1 归并排序5、计数排序...

2019-09-27 21:28:32 191

原创 数据结构-二叉树

文章目录1、什么是二叉树2、二叉树结构3、二叉树函数接口4、函数实现4.1 构建二叉树4.2 1、什么是二叉树    二叉树是每个结点最多有两个子树的树结构。    一棵深度为k,且有2^k-1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。 2、二叉树结构一个二叉树结点,分为三个域,第一个域是左孩子指针,第二个域是存的数据,第三个域是...

2019-09-21 09:33:56 261

原创 数据结构-堆

文章目录一、堆的简介二、堆的结构三、堆的函数接口四、函数接口实现一、堆的简介  空格  换行字体颜色用法:堆通常是一个可以被看做一棵完全二叉树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。 二、堆的结构 堆是一个完...

2019-09-21 07:51:45 109

原创 数据结构-栈和队列

文章目录1. 栈、队列 介绍1.1 栈1.2 队列2. 栈的 函数接口 及其 实现2.1 函数接口2.2 接口实现4. 队列的 函数接口 及其 实现  1. 栈、队列 介绍1.1 栈    栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后...

2019-08-09 11:01:58 129

原创 数据结构-带头 双向 循环 链表函数接口实现

文章目录1. 双向、带头、循环链表介绍2. 双向链表结构体、常用函数接口  1. 双向、带头、循环链表介绍带头双向循环链表:结构最复杂,但实现接口时比较简单,一般用在单独存储数据。实际使用的很多链表数据结构大多都是带头双向循环链表。 2. 双向链表结构体、常用函数接口...

2019-08-01 17:19:52 264

原创 数据结构-无头 单向 非循环 链表函数接口实现

文章目录1. 单向、不带头、不循环链表介绍2. 单链表结构体、常用函数接口1. 单向、不带头、不循环链表介绍无头单向非循环链表:结构简单,但是实现接口时比较繁琐,一般不会用来单独存储数据,大部分作为其他结构的子结构应用。2. 单链表结构体、常用函数接口...

2019-07-31 16:32:48 166

原创 数据结构-顺序表函数接口实现

文章目录1、顺序表介绍2、顺序表结构体、常用函数接口3、顺序表接口的实现3.11、顺序表介绍   顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺...

2019-07-30 16:28:39 436

原创 数据结构-时间、空间复杂度

 推导O()的方法:运行次数函数的加法常数用1取代运行次数函数中,只保留最高阶项把最高阶项的系数改为1一、时间复杂度时间复杂度主要是衡量一个算法的运行速度,定量描述该算法的运行时间。算法的基本操作执行次数就是该算法的时间复杂度。符号O的渐进表示法:O() 例:递归计算斐波那契: long my_fibonacci(size_t n) { return...

2019-06-29 15:42:28 220

原创 C-程序的编译链接、宏、条件编译、头文件展开

文章目录一、编译链接二、宏三、条件编译四、头文件展开一、编译链接1.程序的环境、翻译组成一个程序的每个源文件通过编译转换成目标代码每个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序链接器同时也会引入标准C函数库中被该程序调用的函数,也可以搜索程序员个人的程序库,将其需要的函数也链接到程序中2.程序执行过程程序必须载入内存。有操作系统时,一般这个由操作系统完成;独立环...

2019-06-27 19:34:18 1140

原创 C-结构体、位段、枚举、联合

目录索引一、结构体二、位段三、枚举四、联合一、结构体1. 结构体的声明例如,描述一个学生的信息:// 第一种typedef struct Student{ char name[20]; // 学生姓名 int age; // 学生年龄 char sex[10]; // 学生性别}Stu;// 新的类型名Stu stu1;// 结构体变量-----------...

2019-06-27 12:34:22 172

原创 C-模拟实现 字符串函数str系列、内存函数mem系列

 编译环境:vs2017编译的时候注意包含头文件。   在学习字符串函数之前,先看看size_t和int的区别吧:size_t是标准C库中定义的,应为unsigned int,在64位系统中为 long unsigned int。size_t在32位架构上是4字节,在64位架构上是8字节。int是一个数据类型,应为signed int,在32位和64位上都是4个...

2019-06-01 23:46:35 311

原创 C-指针与函数、数组混合使用详解

一、一级指针分享一个指针的使用小例子:二、二级指针三、指针数组和数组指针指针和数组混合使用的一些小例子:多级指针小例子:四、函数指针和函数指针数组转移表五、回调函数...

2019-05-30 23:19:26 585

原创 C-结构体内存对齐

结构体的对齐规则编译环境: vs20171.结构体的第一个数据成员在偏移量为0的地址处。2.其他成员放在对齐数的整数倍地址处。对齐数取编译器默认和该数据成员大小的min,vs默认值是8,Linux默认值是4。3.结构体总大小是最大对齐数的整数倍。用一些小例子演示一下:例一: struct s1 { double a; char b; int c; }; print...

2019-05-12 09:58:58 2365 8

原创 C-整形在内存中的存储(截断、提升、大小端机)

1. 判断下面的程序输出什么?#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int main(){ char a = -1; signed char b = -1; unsigned char c = -1; printf("a=%d\nb=%d\nc=%d\n", ...

2019-04-15 14:33:29 453

原创 C语言操作符详解

C语言的操作符算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员算术操作符1.算术操作符包括: + - * / %2.对于/ 操作符,整数除法,前后操作数必须都是整数,浮点数除法,前后操作数只要其中一个是浮点数即可。3.对于%操作符,其操作数不能是浮点数,必须为整数。移位操作符...

2019-04-01 18:07:17 126

原创 C-三子棋游戏

//test.c文件#define _CRT_SECURE_NO_WARNINGS 1#include"game.h"void menu(){ printf("*******************************\n"); printf("***** 1.play *****\n"); printf("***** 0.exit ...

2019-03-24 09:45:19 123

原创 C-递归、非递归几个小例子

1.递归和非递归求第n个斐波那契数#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>// 递归int Fibonacci(int n){ if (n <= 2) { return 1; } return Fibonacci(n - 2) + Fibonacc...

2019-03-19 21:58:33 229

原创 C语言小练习-3

1.二分查找(折半查找)条件:有序数组#define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int BinarySearch(int arr[], int k, int left, int right){ while (left &lt;= right) { int mi...

2019-03-16 22:32:30 181

原创 C语言小练习-2

1.打印一个数的前5 项之和(如:2+22+222+2222+22222)#define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdio.h&gt;#include&lt;math.h&gt;#include&lt;stdlib.h&gt;int main(){ int n = 0; int s = 0; int t = 0; int su...

2019-03-14 21:01:29 181

原创 C语言小练习-1

1.打印乘法口诀表#define _CRT_SECURE_NO_WARNINGS 1#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int main(){ int i = 0; int j = 0; for (i = 1; i &lt; 10; ++i) { for (j = 1; j &lt;= i; ++j) { p...

2019-03-12 22:54:32 1076

原创 自律

**自律 努力 实践**我的名字是葛柳怡。“清风拂柳,心旷神怡”,母亲说我的名字是这么来的。在大学之前,没想到自己能学习计算机专业,因为父母都认为,女孩子嘛,以后考个公务员,当个老师多好,工作也不累。可是我是学理科的,这些职业对我没有一点吸引力,倒是觉得学习计算机的人都挺厉害的。后来到了大学就是计算机专业。开始接触C/C++语言觉得还可以,理解起来也不难,但是在写代码时就会出各种各样的问...

2019-03-09 18:27:10 235 1

空空如也

空空如也

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

TA关注的人

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