自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python数据结构的学习笔记_01

背景前段时间学习了用c++语言描述的数据结构与算法,近期业务上用python写代码比较多,期间出现了一些问题,感觉这方面的了解还不够,因此这段时间学习下用python语言描述的数据结构与算法,加强一下python相关的知识。期间把学习的知识做个笔记梳理。python入门因为之前已经学习过python,所以这里就不在过多仔细的学习了,只做一个简单的温顾。python对象python是一种面向对象的语言,类则是所有数据类型的基础。标识符、对象和赋值语句python语言的所有语句中,最重要的就是赋值

2022-04-11 00:08:22 856

原创 c++笔记_文件输入输出

文章目录一、文件输入输出二、文件模式1.以out模式打开文件会丢弃已有数据2.每次调用open时都会确定文件模式一、文件输入输出头文件fstream定义了三个类型来支持文件IO:ifstream从一个给定文件读取数据,ofstream向一个给定文件写入数据,以及fstream可以读写给定文件。#include<fstream> //引入fstream头文件//除了继承iostream类型的行为外,还新增了一些新的成员来管来与流关联的文件fstream fstrm; //

2021-01-25 00:16:44 226

原创 c++笔记_类的静态成员

文章目录一、声明静态成员二、使用类的静态成员定义静态成员静态成员的类内初始化总结一、声明静态成员在成员的声明之前加上关键字static使得其与类关联在一起。和其他成员一样,静态成员可以是public或private的。静态数据成员的类型可以是常量、引用、指针、类类型等。//定义一个类,用它表示银行的账户记录class Account{ public: void calclate(){amount+=amount*interesRate;} static double rate(){ret

2021-01-10 22:54:19 189

原创 c++笔记_类类型转换

文章目录一、隐式的类类型转换二、抑制构造函数定义的隐式转换explicit构造函数只能用于直接初始化为转换显示地使用构造函数一、隐式的类类型转换如果构造函数只接受一个实参,则它实际上定义了转换为此类类型的隐式转换机制,把这种构造函数称作转换构造函数。class Sales_data{ public: Sales_data(string s,int cnt,double price); Sales_data(string s); Sales_data(istream &is);

2021-01-10 22:18:05 127

原创 c++笔记_友元

文章目录一、友元二、友元的声明一、友元类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为它的友元。如果类想把一个函数作为它的友元,只需要增加一条以friend关键字开始的函数声明语句即可:class Data{ //为Data的非成员函数所做的友元声明 friend Data add(); friend std::istream &read();};//Data接口的非成员组成部分的声明Data add();std::istream &read()

2021-01-10 01:08:06 94

原创 c++笔记_构造函数

文章目录一、构造函数二、默认构造函数三、定义构造函数1.构造函数初始值列表2. 在类的外部定义构造函数一、构造函数每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的任务是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。二、默认构造函数类通过一个特殊的构造函数来控制默认初始化过程,这个函数叫做默认构造函数。默认构造函数无须任何实参。如果类没有显示地定义构造函数,那么编译器就会为我们隐式地定义一个默

2021-01-09 23:03:29 154

原创 c++笔记_类和对象

文章目录一、封装1.访问权限二、类的空间大小三、类作用域和成员函数四、在类的外部定义成员函数总结一、封装封装:把变量(属性)和函数(操作)合成一个整体,封装在一个类中,对变量和函数进行访问控制(公有、私有、保护)。1.访问权限一.在类的内部(作用域范围内),没有访问权限之分,所有成员可以相互访问。二.在类的外部(作用域范围外),访问权限才有意义:public、private、protected。三.在类的外部,只有public修饰的成员才能被访问,在没有涉及继承与派生时,private和pro

2021-01-07 22:46:22 65

原创 c++笔记_函数指针

函数指针一、函数指针二、使用函数指针三、重载函数的指针四、函数指针形参五、返回指向函数的指针总结一、函数指针函数指针指向的是函数而非对象。和其他指针一样,函数指针指向某种特定类型。函数的类型由它的返回类型和形参类型共同决定,与函数名无关。例如://比较两个stirng对象的长度bool lengthCompare(const string &s1, const string &s2);该函数的类型是bool(const string &, const string &a

2021-01-03 23:12:59 57

原创 c++笔记_函数匹配

函数匹配前言一、确定候选函数和可行函数二、实参类型转换1.需要类型提升和算术类型转换的匹配2.函数匹配和const实参前言当几个重载的函数形参数量相等以及某些形参的类型可以由其他类型转换得来时,我们就不太容易确定某次调用应该选用哪个重载函数。以下面这组函数及其调用为例:void f();void f(int);void f(int,int);void f(double,double=3.14);f(5.6); //调用void f(double,double)一、确定候选函数

2021-01-03 22:37:31 152

原创 c++笔记_内联函数和constexpr函数

一、内联函数可避免函数调用开销将函数指定为内联函数,通常就是将它在每个调用点上“内联地”展开。在函数的返回类型前面加上关键字inline,这样就可以将它声明成内联函数了:inline const string &shorterString(const string &s1,const string &s2){ return s1.size()<s2.size() ? s1 : s2;}内联机制用于优化规模较小、流程直接、频繁调用的函数。二、constexpr函数

2021-01-03 22:11:47 306

原创 c++笔记_默认实参

默认实参一、默认实参二、使用默认实参调用函数三、默认实参声明总结一、默认实参函数有这样一种形参,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参。调用含有默认实参的函数时,可以包含该实参,也可以省略该实参。//假设我们希望窗口的高、宽和背景都使用默认值void screen(int ht = 24, int wid =80, char backgrand=' ');其中每一个形参都提供了默认实参,默认实参作为形参的初始值出现在形参列表中。可以为一个或

2021-01-03 21:41:58 367

原创 c++笔记_函数重载

函数重载一、函数重载二、定义重载函数1.判断两个形参的类型是否相异2.重载和const形参3.const_cast和重载三、调用重载的函数一、函数重载同一座用于内的几个函数名字相同但形参列表不同,我们称之为重载函数。比如我们定义了几个名为print的函数:void print(const char *cp);void print(const int *beg, const int *end);void print(const int ia[],size_t size);这些函数接受的形参类

2020-12-30 23:55:53 140

原创 c++笔记_返回类型和return语句

返回类型和return语句前言一、无返回值函数二、有返回值函数三、值是如何被返回的1、返回引用类型2、不要返回局部对象的引用或指针3、返回类类型的函数和调用运算符4、引用返回左值5、列表初始化返回值6、主函数main的返回值四、递归五、返回数组指针1、声明一个返回数组指针的函数2、使用尾置返回类型3、使用decltype前言return语句终止当前正在执行的函数并将控制权返回调用该函数的地方。return语句有两种形式:return;return expression;一、无返回值函数没有返

2020-12-27 23:47:01 1027

原创 c++笔记_参数传递

参数传递前言一、传值参数二、指针形参三、传引用参数1.使用引用避免拷贝2.使用引用形参返回额外信息四、const形参和实参1.尽量使用常量引用五、数组形参1.使用标记指定数组长度2.使用标准库规范3.显示传递一个表示数组大小的形参4.数组引用参数前言每次调用函数时都会重新创建它的形参,并用传入的实参对形参进行初始化。当形参是引用类型时,我们说它对应的实参被引用传递或者函数被传引用调用。和其他引用一样,引用形参也是它绑定的对象的别名:也就是说,引用形参是它对应的实参别名。当实参的值被拷贝给形参时,形

2020-12-26 01:35:21 210

原创 c++笔记_函数声明

函数声明前言一、函数声明1.在头文件中进行函数声明前言函数的名字也必须在使用之前声明。类似于变量,函数只能定义一次,但可以声明多次。如果一个函数永远不会被我们用到,那么它可以只有声明没有定义。一、函数声明函数的声明和函数的定义非常类似,唯一的区别是函数声明无须函数体,用一个分号替代即可。因为函数的声明不包含函数体,所以也就无须形参的名字。void print(int , int); //函数声明无须具体的形参名字,但是必须指出类型void print(int a,int b); //也

2020-12-26 00:05:48 1413 1

原创 c++笔记_局部对象

局部对象前言一、局部对象1.局部对象的生命周期二、自动对象三、局部静态对象前言C++语音中,名字有作用域,对象有生命周期:一:名字的作用域是程序文本的一部分,名字在其中可见。二:对象的生命周期是程序执行过程中对该对象存在的一段时间。一、局部对象形参和函数体内部定义的变量统称为局部对象。它们对函数而言是“局部”的,仅在函数的作用域可见,同时局部变量还会隐藏在外层作用域中同名的其他所有声明中。1.局部对象的生命周期在所有函数体之外定义的对象存在于程序的整个执行过程中。此类对象在程序启动时被创建

2020-12-25 00:13:16 789

原创 c++笔记_函数基础

函数前言一、函数基础1.编写函数2.调用函数3.形参和实参4.函数的形参列表前言函数是一个命名了的代码块,通过调用函数执行相应的代码。函数可以有0个或多个参数,而且通常会产生一个结果。可以重载函数,也就是说,同一个名字可以对应几个不同的函数。一、函数基础1.编写函数一个典型的函数定义包括以下部分:返回类型、函数名字、由0个或多个形参组成的列表以及函数体。编写一个求数的阶乘的程序。n的阶乘是从1到n所有的数字的乘积,例如5的阶乘是120。1*2*3*4*5=120//程序如下int fac

2020-12-23 23:58:30 488

原创 c++笔记_语句

语句一、简单语句1.空语句2.复合语句二、语句作用域三、条件语句1.if和switch语句区别2.if语句3.嵌套if语句4.悬垂else5.switch语句6.default标签7.switch内部的变量定义四、迭代语句1.while语句2.使用while循环3.传统的for语句4.省略for语句头的某些部分5.范围for语句6.do while语句五、跳转语句1.break语句2.continue语句总结一、简单语句C++语言中的大多数语句都以分号结束,一个表达式,末尾加上分号就变成了表达式语句。

2020-12-13 23:37:51 179

原创 c++笔记_类型转换

类型转换前言一、隐式转换1.何时发生隐式类型转换二、算术转换三、整型提升四、其他隐式类型转换1.数组转换成指针2.指针的转换3.转换成布尔类型4.转换成常量5.类类型定义的转换二、显示转换1.命名的强制类型转换一.static_cast二.const_cast2.旧式的强制类型转换总结前言C++语言中,某些类型之间有关联。如果两种类型有关联,那么程序需要其中一种类型的运算对象时,可以用另一种关联类型的对象或值来替代。换句话说,如果两种类型可以相互转换,那么它们就是关联的。一、隐式转换类型转换是自

2020-12-13 02:30:44 361 1

原创 c++笔记_多维数组

多维数组一、多维数组二、多维数组的初始化三、多维数组的下标引用三、使用for循环处理多维数组1.普通for循环2.使用范围for循环四、指针和多维数组一、多维数组当一个数组当元素仍然是数组时,通常使用两个维度来定义它:一个维度表示数组本身大小,另外一个维度表示其元素(也是数组)大小:int ia[3][4]; //大小为3当数组,每个元素含有4个整数当数组//大小为10的数组,每个元素都是大小为20的数组,这些数组的元素是含有30个整数的数组int arr[10][20][30] = {0};

2020-12-12 03:43:38 320

原创 c++笔记_数组

数组一、定义和初始化内置数组二、显示初始化数组元素三、字符数组的特殊性四、不允许拷贝和赋值五、复杂的数组声明六、指针和数组七、指针也是迭代器八、标准库函数begin和end九、指针运算10、解引用和指针运算交互11、下标和指针总结一、定义和初始化内置数组数组是一种复合类型。数组的声明形如a[d],其中a是数组名,d是数组的难度。难度说明了数组中元素的个数,因此必须大于0。数组中元素的个数也属于数组类型的一部分,编译的时候维度应该已知的。也就是说,维度必须是一个常量表达式:unsigned cnt =

2020-12-09 23:30:06 85

原创 c++笔记_标准库类型string

string一、标准类型库string二、定义和初始化string对象1.string构造函数2.直接初始化和拷贝初始化3.string基本赋值操作4.读写string对象总结一、标准类型库string标准类型库string表示可变长的字符序列,使用string类型必须首先包含string头文件。#include<string>using std::string;作为标准库的一部分,string定义在命名空间std中。二、定义和初始化string对象1.string构造函数以

2020-12-08 01:16:27 129

原创 c++笔记_命名空间

命名空间一、命名空间的using声明1.作用域操作符号2.使用using声明3.每个名字都需要独立的using声明二、using声明和using编译指令1.限定和未限定的名称2.using声明和using编译指令区别3.using声明的全局作用域4.using声明的局部作用域三、命名空间namespace1.命名空间namespace作用2.命名空间namespace的定义3.命名空间只能在全局范围内定义4.命名空间嵌套命名空间5.命名空间是开放的6.访问命名空间中的函数7.命名空间中的函数定义8.无名命名

2020-12-06 02:08:39 147

原创 c++笔记_头文件

头文件前言一、头文件1.头文件作用2.头文件通常包含什么二、预处理器概述1.什么是预处理器2.预处理器作用3.头文件保护符2.读入数据总结前言尽管可以在函数体内定义类,但是这样的类毕竟受到类一些限制。所以,类一般都不定义在函数体内。当在函数体外部定义类时,在各个指定的源文件中可能只有一处该类的定义。而且,如果要在不同的文件使用同一个类,类的定义就必须保持一致。一、头文件1.头文件作用1.为了确保各个文件中类的定义一致,类通常被定义在头文件中,而且类所在的头文件名字应与类的名字一样。比如,str

2020-12-05 01:54:31 116

原创 c++笔记_自定义数据结构

数据结构前言一、定义结构体二、结构体数据成员1.什么是数据成员2.如何定义数据成员3.类内初始值1.类内初始值作用三、使用结构体1.添加两个Sales_data对象四、结构体(struct)和类(class)区别总结前言从最基本的层面理解,数据结构是把一组相关的数据元素组织起来然后使用它们的策略和方法。一、定义结构体定义结构体可以使用关键字struct开始,紧跟着是类名和类体(其中类体部分可以为空)。类体由花括号包围形成了一个新的作用域。结构体内部定义的名字必须唯一,但是可以与结构体外部定义的名

2020-12-03 23:59:59 708

原创 c++笔记_类型别名

处理类型前言一、类型别名1.C++11新写法2.类型别名和类型的名字使用范围二、指针、常量和类型别名三、auto类型说明符1.使用auto类型的注意事项四、decltype类型指示符1.decltype和引用2.decltype和auto区别总结前言随着程序越来越复杂,程序中用到的类型也越来越复杂,这种复杂体现在两个方面。一是一些类型难于“拼写”,它们的名字既难记又容易写错,还无法明确体现其真实目的和含义。二是有时候根本搞不清到底需要的类型是什么,程序员不得不回过头去从程序的上下文中寻求帮助。一.

2020-12-03 00:15:33 210

原创 c++笔记_const限定符

const限定符前言一、const二、初始化和const三、const作用域1.如何使const变量在文件间共享?四、const的引用五、初始化和对const的引用1.对const的引用可能引用一个并非const的对象六、指针和const七、const指针1.如何修改指向常量的常量指针八、const和#define区别1.宏没有类型const有2.宏的作用域是整个文件,const的作用域以定义情况决定3.宏不能作为命名空间的成员,const可以前言有时候我们希望定义这样一种类型,它的值不能被改变。为了

2020-12-01 01:01:19 239

原创 c++笔记_指针

指针前言一、指针和引用的区别二、定义指针类型方法三、获取对象的地址四、指针值五、利用指针访问对象1.补充:关于某些符号有多重含义六、空指针七、赋值和指针八、其他的指针操作九、void*指针总结前言指针(pointer)是“指向”另外一种类型的复合类型。与引用类似,指针也实现了对其他对象的间接访问,像其他数据值一样,内存地址或指针值可以存储在适当类型的变量中。存储地址的变量被称为指针变量,但通常简称为指针。一、指针和引用的区别指针与引用相比有很多不同点:一:指针本身就是一个对象,允许对指针赋值和

2020-11-30 00:37:08 341

原创 c++笔记_引用

饮用前言一、引用是什么?1.引用即别名二、引用的定义三、用引用给数组取个名字四、配合typedef使用引用四、引用作为函数参数五、引用作为函数返回值六、引用的本质总结前言复合类型(compound type)是指基于其他类型定义的类型。一、引用是什么?引用(reference)为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名:代码如下(示例):int ival = 1024;int &re

2020-11-29 03:24:47 193

原创 c++笔记_名字的作用域

名字的作用域前言一、作用域是什么?二、嵌套的作用域总结前言不论是在程序的什么位置,使用到的每个名字都会指向一个特定的实体:变量、函数、类型等。然而,同一个名字如果出现在程序的不同位置,也可能指向的是不同实体。一、作用域是什么?作用域(scope)是程序的一部分,在其中名字有其特定的含义。C++语言中大多数作用域都以花括号分隔。同一个名字在不同的作用域中可能指向不同的实体。名字的有效区域始于名字的声明语句,以声明语句所在的用于末端为结束。代码如下(示例):#include<iostre

2020-11-28 02:11:06 285

原创 c++笔记_标识符

标识符一、标识符是什么?1.变量命名规范2.C++关键字&操作符替代名一、标识符是什么?C++的标识符(identifier)由字母、数字和下划线组成,其中必须以字母或下划线开头。标识符的长度没有限制,但是对大小字母敏感://定义了4个不同的int变量int somename, someName, SomeName, SOMENAME;C++语言保留了一些名字供语言本身使用,这些名字不能被使用作标识符。1.变量命名规范变量命名有许多约定俗称的规范,下面的这些规范能有效提高程序的可读

2020-11-28 01:08:30 2707

原创 c++笔记_变量

文章目录前言一、变量定义二、初始值1.什么是对象?2.初始化3.列表初始化4.默认初始化5.变量声明和定义的关系总结前言变量提供一个具名的、可供程序操作的存储空间。C++中的每个变量都有其数据类型,数据类型决定着变量所占内存空间的大小和布局方式、该空间能存储的值的范围,以及变量能参与的运算。对C++程序员来说,“变量(variable)”和“对象(object)”一般可以交换使用一、变量定义变量定义的基本形式是:首先是类型说明符(type specifier),随后紧跟着由一个或多个变量名组成的

2020-11-27 00:59:30 156

原创 c++笔记_字面值常量

文章目录前言一、整形和浮点型字面值1.整形字面值2.浮点型字面值3.转义序列4.指定字面值的类型5.布尔字面值和指针字面值6.字符和字符串字面值总结前言一个比如42的值被称作为字面值常量(literal)。每个字面值常量都对应一种数据类型,字面值常量的形式和值决定了它的数据类型。一、整形和浮点型字面值1.整形字面值整数型字面值可以写作十进制,八进制或十六进制。其中以0开头的整数代表八进制,以0x或0X开头的代表十六进制数。比如://用任意一种形式来表示数字2020 //十进制024

2020-11-25 22:36:09 278

原创 c++笔记_算术类型和类型转换

文章目录前言一、算术类型是什么?1.带符号类型和无符号类型二、类型转换2.含有无符号类型的表达式总结参考文献前言C++定义了一套包括算术类型(arithmetic type)和空类型(void)在的内的基本数据类型。一、算术类型是什么?算术类型分类两类:整型和浮点型。具体类型如下://c++ 算术类型类型 含义 最小尺寸bool 字符 未定义 //布尔类型(bool)取值是真(true)或者假(false) //数字表示则

2020-11-24 23:39:02 580

原创 c++笔记_初学c++

文章目录前言一、知识点1.如何撰写C++程序2.函数3.class类4.字符常量总结参考文献前言为什么要写???自学c++已经快半年了,期间因为工作原因忙忙碌碌断断续续的学习,所有可能有些知识点没有掌握或已经淡忘,因此重新快速温顾已学习的知识,顺便梳理记录一下笔记。一、知识点1.如何撰写C++程序每个C++程序都是从main的函数开始执行,main是个由用户自行撰写的函数,其代码如下int main(){ //我们的程序代码置于此处 //int是C++程序语音的关键字,所谓关键字,

2020-11-22 22:51:26 140

空空如也

空空如也

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

TA关注的人

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