自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java变量

变量和类型变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.1 整型变量基本语法格式:int 变量名 = 初始值;示例:int num = 10; // 定义一个整型变量System.out.println(num); 注意事项:int 表示变量的类型是一个整型;变量名是变量的标识. 后续都是通过这个名字来使用变量;Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值;初

2022-05-08 10:13:59 501

原创 C++知识点总结10 list

为什么会有list? 补充vector的不足 vector的优点: 支持下标的随机访问(operator[]),间接的很好的支持排序、二分查找、堆算法等vector的缺点: 1、头部和中部的插入删除效率低,O(N),因为需要挪动数据 2、插入数据空间不够需要增容,增容需要开辟新空间、拷贝数据、释放旧空间,会付出很大的代价 list的优点: 1、头部、中间插入不需要挪动数据,效率高,O(1) 2、插...

2021-08-18 20:03:57 179

原创 C++知识点总结9 vector

vector的介绍 vector的文档介绍:http://www.cplusplus.com/reference/vector/vector/ 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 3. 本质讲,vector使用动态分配数组来存储它的...

2021-08-18 19:59:17 210

原创 C++知识点总结8 string

标准库中的string类string类 1. 字符串是表示字符序列的类 2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。 3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。 4. string类是basic_string模板类的一个实例,它使用char来实例化ba...

2021-08-18 19:52:04 364

原创 C++知识点总结7 模板II

非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参:就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。 namespace xxx { // 定义一个模板类型的静态数组 template<class T,size_t N = 10> ...

2021-08-17 22:16:39 87

原创 C++知识点总结6 模板I

泛型编程 如何实现一个通用的交换函数呢? 使用函数重载虽然可以实现,但是有一下几个不好的地方: 1. 重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数 2. 代码的可维护性比较低,一个出错可能所有的重载均出错 如果在C++中,也能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件 (生成具体类型的代码),那将会节省许多头发。泛型编程:编写与类型无关的通用代码,是代码复...

2021-08-17 22:08:45 77

原创 C++知识点总结5 内存管理

C/C++内存分布 【说明】 1.栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。(栈可以通过函数_alloca进行动态分配,不过,所分配空间不能通过free或delete进行释放) 2.内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享内存,做进程间通信。(Linux课程如果没学到这块,现在只需要了解一下) 3.堆用于程序运行时动态内存分配(只能),堆是可以向上增长的。 4.数据段...

2021-08-17 22:02:27 230

原创 C++知识点总结4 类和对象III

再谈构造函数构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date 、 { public: Date(int year, int month, int day) { _year = year; _month = month; _day = day;...

2021-08-15 22:40:42 76

原创 C++知识点总结3 类和对象II

类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。1.构造函数构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次。特性 构造函数是特殊的成员函数,需要注意的是,构造函数的虽然名称叫构造,但是需要注意的是构造函数的主要任务并不是开空间创建对象,而...

2021-08-15 22:33:18 62

原创 C++知识点总结2 类和对象I

面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。类的引入 C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数类的定义 class className { // 类体:由成员函数和成员变量组成 }; // 一定要注意后...

2021-08-15 22:16:03 119

原创 C++知识点总结1 基础知识点

命名空间 在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作 用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。 命名空间定义 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。 命名空间使用 命名空间的使用有三种方式: 1...

2021-08-15 20:02:29 126

原创 数据结构知识点总结4 排序

排序排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。常见排序算法的

2021-08-10 16:18:40 131

原创 数据结构知识点总结3 二叉树

二叉树树树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的节点,称为根节点,根节点没有前驱结点。除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。因此,树是递归定义的。节点的度:一个节点含有的

2021-08-07 08:09:47 365

原创 数据结构知识点总结2 栈和队列

栈和队列栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。队列队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性

2021-08-03 20:20:41 199

原创 数据结构知识点总结1 时间复杂度和空间复杂度

什么是数据结构?数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。什么是算法?算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单 来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。时间复杂度和空间复杂度算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运

2021-07-31 14:27:41 319

原创 c语言基础总结12 程序环境和预处理

程序的环境和预处理程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。源文件–>编译–>链接(合并段表、符号表的合并和重定位)–>可执行文件编译:预处理(预编译)–>编译(语法分析、词法分析、语义分析、符号汇总)–>汇编(形成符号表、汇编指令–>二进制(机器)指令)哪个阶段可以发现被调用的函数未定义?预处理只会处理#开头的语句,编译阶

2021-07-28 15:09:08 125

原创 c语言基础总结11 c文件操作

在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀 为.exe)数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件这里讨论的是数据文件文件名:一个文件要有一个唯一的文件标识,以便用户识别和引用文件名包含3部分:文件路径+文件名主干+文件后缀 例如: c:\code\test.txt为了方便起见,文件标识常被

2021-07-28 15:06:25 406 1

原创 c语言基础总结10动态内存分配

为什么存在动态内存分配我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。 但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编 译时开辟空间的方式就不能满足了。 这时候就只能试试动态内存开辟了(在堆区)

2021-07-28 15:05:33 282

原创 c语言 通讯录实现

头文件及各类声明contact.h#define MAX 1000#define MAX_NAME 20#define MAX_TEL 12#define MAX_ADDR 100#define MAX_QQ 12#define MAX_SEX 5#include<stdio.h>#include<string.h>//类型的声明 函数的声明typedef struct PeoInfo{ char name[MAX_NAME]; char tele[M

2021-07-26 17:26:14 110

原创 c语言基础总结9 枚举、联合体

枚举枚举顾名思义就是一一列举。 把可能的取值一一列举定义: enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat, Sun };{}中的内容是枚举类型的可能取 值,也叫 枚举常量 。 这些可能取值都是有值的,默认从0开始,一次递增1当然在定义的时候也可以赋初值。 例如:enum Color//颜色{ RED=1, GREEN=2, BLUE=4 };

2021-07-26 17:23:10 64

原创 c语言基础总结8 结构体相关

结构体结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体声明 struct tag { member-list; }variable-list; //此处创建的结构体变量是全局变量 而在main函数中创建的结构体变量是局部变量也可以: typedef struct tag { member-list; }tag;//可以直接用tag创建变量在声明结构的时候,可以不完全的声明。 //匿名结构体类型

2021-07-26 17:20:59 52

原创 c语言基础总结7 字符串相关

字符串和字符串函数函数介绍strlen()size_t strlen ( const char * str );字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )参数指向的字符串必须要以 ‘\0’ 结束注意函数的返回值为size_t,是无符号的( 易错 )strcpy()char* strcpy(char * destination, const char * source );源字符串必须以 ‘\0’ 结束会将源字

2021-07-26 17:18:32 70

原创 c语言基础总结6 指针相关

基本概念:1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间2. 指针的大小是固定的4/8个字节(32位平台/64位平台)3. 指针是有类型,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限free不会更改指针的指向字符指针char* pstr = “hello bit.”; 特别容易让人以为是把字符串 hello bit 放到字符指针 pstr 里 了但是本质是把字符串 hello bit. 首字符h的地址放到了pstr中hello bit 是一个常量字符串 不能被

2021-07-25 16:17:12 66

原创 c语言基础总结5 数据在内存中的存储

c内置了多种数据类型,使用这些类型,开辟的内存空间大小并不相同,看待内存空间的视角也不同整型:char: unsigned char signed char //字符在内存中存储的实际上是ASCII码值 char有无符号取决于编译器 大部分是signed charshort: unsigned short [int] signed short [int]int: unsigned int signed intlong:

2021-07-25 16:14:02 109

原创 c语言基础总结4 调试技巧

实用的调试技巧所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心有愧,就必然需要掩盖,那就一定会有迹象,迹象越多就越容易顺藤而上,这就是推理的途径。顺着这条途径顺流而下就是犯罪,逆流而上,就是真相。基本步骤:1、发现错误的存在2、以隔离、消除等方式对错误进行定位3、确定错误产生的原因4、剔除纠正错误的解决办法5、对错误进行改正,重新测试Debug称为调试版本,它包含调试信息,且不作任何优化,便于程序员调试程序(程序员调试的版本)Release称为发布版本,

2021-07-25 16:12:06 168

原创 c语言 扫雷游戏

game.h设置头文件#include<stdio.h>#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define EASY_COUNT 10#define ROWS ROW+2#define COLS COL+2//初始化void InitBoard(char board[ROWS][COLS], int rows, int cols,char set);//打印

2021-07-18 22:04:57 113 1

原创 c语言 三子棋游戏

game.h设置头文件#define ROW 3#define COL 3#include<stdio.h>#include<stdlib.h>#include<time.h>//声明函数//初始化棋盘void InitBoard(char board[ROW][COL], int row, int col);//打印棋盘void DisplayBoard(char board[ROW][COL], int row, int col);//玩家下

2021-07-18 22:02:04 146 1

原创 c语言基础总结3 数组、操作符

数组数组是一组相同类型元素的集合。数组创建时,[]中必须是常量数组的初始化不能使用(),只能使用{}int arr[10]={1,2,3};//不完全初始化,剩余元素默认初始化为0int arr[]=(1,2,3,4);//根据给的元素确定数组的长度char arr1[]={‘a’,‘b’,‘c’,‘d’};//–>a,b,c,d sizeof(arr1)=4 strlen(arr1)=随机值 strlen()找到“\0”才停止char arr2[]=“abcd

2021-07-18 21:58:53 198

原创 c语言基础总结2 语句、函数

什么是语句?c中由一个;隔开的就是一条语句分支语句(选择结构)if else如果书写不规范,则else会与最近的可以匹配的if匹配写判断条件时,(4num)比(num4)更好,更易检查出问题switchbreak语句的实际效果是把语句列表划分为不同的部分。(最后记得加上break)(跳出当前{})switch(整型表达式) case 整型常量表达式 也可以是char如果与case都不匹配,则执行default语句(最好加上)循环语句while循环continue会跳出本次循环

2021-07-17 21:48:36 92

原创 c语言基础总结1

1个字节(byte)=8个比特(bit)变量:局部变量: {}中的变量全局变量: {}外的变量生命周期:局部变量:进入作用域生命周期开始,出作用域生命周期结束全局变量:整个程序的生命周期常量:字面常量:const修饰的常变量:定义不能被改变的变量 (如创建数组时 数组大小需要为一个常量 但使用const不能完成)#define定义的标识符常量:枚举常量: 定义枚举常量然后使用字符串:由“”引起来的一串字符,字符串的结束标准是\0的转义字符,计算字符串长度(strlen())时\0为

2021-07-16 18:22:25 259

空空如也

空空如也

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

TA关注的人

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