自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Minieye笔试总结

首先数组定义有误,应加上类型参数:vector array。其次vector::size_type被定义为unsigned int,即无符号数,这样做为循环变量的i为0时再减1就会变成最大的整数,导致循环失去控制。2.机器学习中常用的距离度量欧式距离曼哈顿距离闵可夫斯基距离(闵式距离)马氏距离标准欧式距离汉明距离杰卡德距离测地距离(Geodesic Distance)3.请概述基类以及继承中,有关函数重载、重写与重定义的...

2022-04-07 17:40:18 819 4

原创 C++对象模型和this指针

4.3 C++对象模型和this指针4.3.1 成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上4.3.2 this指针概念通过4.3.1我们知道在C++中成员变量和成员函数是分开存储的每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码那么问题是:这一块代码是如何区分那个对象调用自己的呢?c++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属的对象this指针是隐含

2022-04-05 00:19:38 100

转载 构造函数调用规则

4.2.4 构造函数调用规则默认情况下,c++编译器至少给一个类添加3个函数1.默认构造函数(无参,函数体为空)2.默认析构函数(无参,函数体为空)3.默认拷贝构造函数,对属性进行值拷贝构造函数调用规则如下:* 如果用户定义有参构造函数,c++不在提供默认无参构造,但是会提供默认拷贝构造* 如果用户定义拷贝构造函数,c++不会再提供其他构造函数class Person {public: //无参(默认)构造函数 Person() { cout << "无参构造

2022-04-04 18:54:58 674

原创 C++---函数提高

3.函数提高3.3.1 函数重载概述**作用:**函数名可以相同,提高复用性函数重载满足条件:同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同注意:函数的返回值不可以作为函数重载的条件示例://函数重载需要函数都在同一个作用域下void func(){ cout << "func 的调用!" << endl;}void func(int a){ cout << "func (int a) 的调用!" <<

2022-04-04 18:54:22 215

原创 C++---对象的初始化和清理

4.2.1 构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题​ 一个对象或者变量没有初始状态,对其使用后果是未知​ 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题c++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器会提供编译器提供的构造函数和析构函数是空实现。构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译

2022-04-04 18:53:56 372

原创 C++---int a; int* a; int** a; int (*a)[]; int (*a)(int)

int a; int* a; int** a; int (*a)[]; int (*a)(int)a) int a;表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间;d) int (a)[4];表示一

2022-04-04 17:59:51 1095

原创 C++---自动解引用

2022-04-04 10:13:47 465

原创 C++--空指针、野指针、常量指针、指针常量

7.4 空指针和野指针空指针:指针变量指向内存中编号为0的空间**用途:**初始化指针变量**注意:**空指针指向的内存是不可以访问的示例1:空指针int main() { //指针变量p指向内存地址编号为0的空间 int * p = NULL; //访问空指针报错 //内存编号0 ~255为系统占用内存,不允许用户访问 cout << *p << endl; system("pause"); return 0;}野指针:指针变量指向非法的内存

2022-04-04 08:44:17 104

原创 C++---引用

2.1引用的基本使用引用必须初始化后引用在初始化后不可以改变int main() { int a = 10; int b = 20; //int &c; //错误,引用必须初始化 int &c = a; //一旦初始化后,就不可以更改 c = b; //这是赋值操作,不是更改引用 cout << "a = " << a << endl; cout << "b = " << b << endl;

2022-04-03 23:54:07 61

原创 内存分区模型new等关键字

C++程序在执行时,将内存大方向划分为四个区域1.内存分区模型代码区:存放函数体的二进制代码,有操作系统进行管理全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,分配函数的参数值,局部变量堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收1.1 程序运行前在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域代码区:‘存放CPU执行的机器指令代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可代码区是只读的,使其只

2022-04-03 23:24:54 84

原创 Map集合

一、Map集合Collection:单独存在的Map:双列集合 键值对常用子类Map常用子类HashMap:由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。LinkedHashMap:HashMap下有个LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。...

2022-03-30 10:59:53 58

原创 List、Set、数据结构、Collections

一、List的子类1、ArrayList集合java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以 ArrayList 是最常用的集合。许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的。2、 LinkedList集合LinkedList是一个双向链表,方便元素添加、删除的集合,但是查询慢,增删快public void addFirst(E e):将指定元素插入

2022-03-30 10:53:30 70

原创 Mysql概述

DB:数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。DBMS:数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器SQL:结构化查询语言(Structure Query Language):专门用来与数据库通信的语言。SQL语句的分类DML:DML(Data Manipulation Language):数据操纵语句,用于添加、删除、修改、查询数据库记录,并检查数据完整性INSERT、UPDATE、DE.

2022-03-29 11:40:59 401

原创 Mysql乐观锁&悲观锁

乐观锁&悲观锁1.并发控制当程序中可能出现并发的情况时,就需要保证在并发情况下数据的准确性,以此确保当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中并发控制的任务,是确保多个事务同时增删改查同一数据时,不破坏事务的隔离性、一致性和数据库的统一性。

2022-03-29 10:31:05 1216

原创 Java--多态

public class Test {public static void main(String[] args) {// 多态形式,创建对象Cat c = new Cat();Dog d = new Dog();// 调用showCatEatshowCatEat(c);// 调用showDogEatshowDogEat(d);/*以上两个方法, 均可以被showAnimalEat(Animal a)方法所替代而执行效果一致*/showAnimalEat(c);showAnima

2022-03-18 21:28:14 48

原创 Java--接口

接口1.概述接口的内部主要就是封装了方法1.2定义格式public interface 接口名称 {// 抽象方法// 默认方法// 静态方法// 私有方法}含有抽象方法抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体。该方法供子类实现使用。public interface InterFaceName {public abstract void method();}含有默认方法和静态方法私有方法:使用 private 修饰,供接口中的默认方法或者静态方法

2022-03-18 20:28:35 65

原创 Java--Collection集合

Collection集合1.1 集合概述集合和数组都是容器数组长度是固定的。集合长度可变。数组储存的是同一类型元素,集合储存的是对象。1.2集合框架Collection:单列集合类的根接口它有两个重要的子接口,分别是java.util.List和java.util.Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序,而且不可重复。List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有ja

2022-03-18 17:00:56 141

原创 继承、super、this、抽象类

继承的格式通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:class 父类 {...}class 子类 extends 父类 {...}1.5继承后的特点–构造方法当类之间产生了关系,其中各类中的构造方法,又产生了哪些影响呢?首先我们要回忆两个事情,构造方法的定义格式和作用。构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构 造方法中默认有

2022-03-18 15:26:16 48

原创 static关键字

静态方法调用的注意事项:静态方法可以直接访问类变量和静态方法静态方法不能直接访问普通成员变量或者成员方法。成员方法可以直接访问类变量或静态方法。静态方法中,不能使用this关键字。调用格式且建议通过类名直接访问// 访问类变量类名.类变量名;// 调用静态方法类名.静态方法名(参数);静态代码块执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。public class Game {public static int number;public sta.

2022-03-18 14:47:40 51

原创 String类

2022-03-18 13:35:22 79

原创 Java构造方法

package base;public class student_demo { public static void main(String[] args) { student s1 = new student(); s1.show(); }}package base;public class student { public student() { System.out.println("构造方法");

2022-03-11 12:27:08 170

原创 类与对象、封装、构造方法

1.1面向对象思想概述概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。举例洗衣服:面向过程:把衣服脱下来–>找一个盆

2022-03-09 22:30:00 47

原创 Java方法重载

方法重载

2022-03-09 21:23:19 200

空空如也

空空如也

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

TA关注的人

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