自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STL

STLstandard template library 标准模板库template: 模板将类型抽象化 将类型和算法分离 编写更加彻底抽象的算法 \函数\类1.函数模板语法规则:template<typename T,…>函数函数模板 给类型之后实例化 模板函数 才生成对应类型的那个函数对于某些特殊类型的,函数模板不一定适用,所以需要函数模板特化 (特殊处理)函数模板全特化2.类模板template<typename T,…>cla

2020-10-05 17:34:43 117

原创 C++ (五)

C++的异常机制C语言错误处理机制有: 函数返回值 使代码变得更加复杂 异常逻辑和正常代码逻辑混淆setjmp/longjmp 直接错误跳转 使用方便 但是局部对象得不到析构C++ 异常处理机制是 throw try-catch 抛出异常 捕获和处理异常C++ 异常处理机制和python\java都大同小异try{ //可能发生异常的代码}catch(异常类型& e){//根据异常类型来捕获异常 }catch(异常类型& e){

2020-10-05 17:25:14 125

原创 C++ (四)

继承语法: class 类:继承方式 基类,...{ };继承方式:public :公开继承protected :保护继承private :私有继承 默认继承方式决定了基类中的属性继承到子类中的访问控制属性子类拥有父类所有的属性和方法1.子类的构造函数缺省的构造函数会默认调用父类的无参构造函数构造函数的执行顺序: (1)按照继承顺序依次调用基类的构造函数 默认调用无参构造 (2)按照成员的声明顺序 依次调用 类类型成员的构造函数 默认调用无参构造 (3)执行构

2020-10-05 17:21:52 470

原创 C++(三)

运算符重载:让类的对象支持操作符运算1.单目 #O O.operator#() or operator#(O) ~ ! - ++ -- 用哑元来区分前后++--2.双目 M#N M.operator#(N) or operator#(M,N) = + - * / % && || & | ^ [] -> < <= > >= == != [] 一般来说提供常版本和非常版本 排序、查找 一

2020-10-05 17:18:44 101

原创 C++ (二)

1.C++的动态内存new/deletenew[]/delete[]操作符 new和malloc的区别?2.C++的引用引用的底层实现其实就是指针引用必须初始化 一经初始化不能更改目标 引用不能为空引用提高传参效率,节省内省,比指针操作简单 引用与指针的区别?3.C++的类型转换隐式类型转换(自动)强制类型转换显示类型转换: static_cast<>() const_cast<>() reinterpret_cast<>()

2020-10-05 17:17:00 73

原创 C++ (一)

标准C++C的补充和扩充 C就是C++的一个子集C语言写大型程序 复杂 编程效率低C语言最大优势在于性能效率C++兼顾执行效率 与 编程效率C/C++版本越稳定越好1.应用科学计算 完善的科学计算的库操作系统(驱动程序) 可移植性网络软件(网络编程) ACE库网络游戏算法军事软件图形界面软件 vc(visual stdio c++ win32/MFC)windows下平台 C++ windows c++ MFC(Microsoft

2020-10-05 17:10:01 133

原创 Python基本语法

python中的元类 – typetype创造了python中一切 充分体现了动态语言的特性1.type 可以求一个类型 或者一个对象的 类型名称2.type 创建一个类型type(类型名,base_class_tuple,attr_dict)python 创建class 默认是用typeclass X(metaclass= xx): #按照xx去实例化X类对象passclass X():metaclass = xxDjango 模型类ORM全称“Object Relat

2020-10-05 16:57:19 147 1

原创 Python 基本语法

class class_name(super,…): #()以及里在的内容可省略“”"类的说明文档 用于 help(class_name)查看“”"#类的初始化方法 在每一个对象实例化时都会调用 在里面可以增加属性并且赋初始值#init 方法必须要一个参数self 名字可以不叫self, 它是一个引用 引用正在实例化的对象#在__init__方法中绑定的属性 在每个实例化的对象中都有 所以如果需要让这个类的所有对象拥有一样的属性 需要在__init__方法

2020-10-05 16:51:59 66

原创 Python 基本理论(二)

Python 匿名函数 lambda函数没有名字 直接用lambda表达式来替代lambda args,… : expresslambda 表达式只能是简单的表达式 不能多条语句lambda 表达式的结果就是lambda函数的返回值如果有多个值是,需要把多个值用() [] {} 作为一个整体x = lambda arg:arg**2x(10)x(199)*python中没有三目运算符,但是有一个效果等同的val if expr else othervala if a>b els

2020-10-05 16:38:06 842

原创 Python 基本语法(一)

Pythonpython中分为 可变数据类型 和 不可变数据类型可变数据类型: 列表(list) 集合(set) 字典(dict)不可变类型: 数值(number) 布尔(bool) 字符串(str)元祖(tuple) 哈希(hash)1.数值整数(int):在[-5,256]区间内 内存地址是唯一的列如:a = 10 b = 10id(a) = 140604090635424 id(b) = 14060409

2020-10-05 16:31:05 248

原创 基础算法之十种排序(上)

算法的十种排序排序大致列出以下十种:(1)冒泡排序(2)快速排序(3)插入排序(4)鸡尾酒排序(5)堆排序(6)基数排序(7)计数排序(8)希尔排序(9)选择排序(10)归并排序下面我将用代码来解释这十种排序方式:一、冒泡排序:冒泡排序就是将前一个数与后一个数依次进行比较,数值大的一个数往后移,第一次循环结束可以将数列中的最大值找出,并放在以后一个位置。#include <stdio.h>#include <stdlib.h>void swap(i

2020-09-05 11:36:26 86

原创 基础算法之十种排序(下)

上次我们说到了十种排序的前五种,这次我们来说说剩下的五种排序方式:(1).基数排序(2).计数排序(3). 希尔排序(4).选择排序(5).归并排序一、基数排序:基数排序是将所有的数,比较它们各位数的大小,然后依次放到十个链表中去,最后按照顺序将它们取出来,最后再进行对十位的操作:一次知道位数最大的一个数比较才结束。代码如下:#include <stdio.h>#include "slink.h"void swap(int *pa,int *pb){ int

2020-09-05 11:36:11 110

原创 动态内存与结构体

动态内存堆内存 手动申请 手动释放#include <stdlib.h> void *malloc(size_t size);//申请动态内存申请size个字节的动态内存(堆内存 heap)返回void *类型的指针 使用时需要转换成其他类型的指针如果申请失败则返回NULL 成功则返回一个在heap上的内存地址申请多少个字节的动态内存使用多少个字节,千万别越界访问越界访问动态内存非常危险,编译不会检查可能正确执行 可能代码会有逻辑错误 可能程序会崩

2020-07-26 22:54:00 378

原创 指针与字符串

指针C语言程序在内存中的分布 4G的虚拟内存空间 编号:0x0000 0000 - 0xffff ffff4G = 2^2 * 2^30 byte = 2^32 byte一个地址只能存储1byte数据所谓的内存 其实是一个 int 类型的编号 通常显示为十六进制 %p指针即内存地址定义变量意味着分配内存 变量其实是代表着那一片内存里的数据操作变量实际上是操作内存里的数据所有的变量(除了register)其实都可以通过&来获取该变量在内存中的存储位置如果确定了一个内存

2020-07-26 22:34:11 171

原创 C语言函数的调用

函数一段具有指定功能代码函数可以重复调用的 提高了代码的复用率自定义函数:(在main函数外面定义)返回值类型 函数名(形参列表){函数体}返回值类型:与return呼应如果函数没有返回值,可以声明为void如果函数return一个值,则函数应该声明为该值的类型函数名:标识符形参列表:参数类型 形参名形参列表中的变量只能在该函数中使用void func(int a){a只能在这个{}中使用}一个形参一个类型 即使多个形参类型一样也不能省略形参类型int i,j;v

2020-07-26 22:20:00 708

原创 C语言数组基本知识

一维数组一维数组的定义先定义才能使用数据类型 数组名[数组长度];数据类型 数组名[] = {数组元素,…}; 数组的长度由初始化时数组元素的个数来决定初始化数组:int arr[5] = {1,2,3,4,5};int arr[5] = {1,2,3,4,5,6};//警告int arr[5] = {1,2};//补0int arr[5] = {0};//数组元素全部初始化为0int arr[5] = {};int arr[] = {1,2,3,4,5};一维数组相当于一次

2020-07-26 18:42:06 134

原创 C语言基本知识二

分支选择语句(if)语法格式:if(condition){//condtion条件表达式 可以是任何逻辑值 //只有当condition为真时才执行此分支 语句块 } 当条件为真时执行{}语句块中的内容 不满足则直接跳过{}语句块if(condition){ //当condition为真时执行 }else{ //当condition为假时执行 } //不管条件真假一定会执行其中一个分支 if(condition1){ }else if(condition2)

2020-07-26 18:27:35 290

原创 C语言基本理论一

C语言的基本数据类型字符 char整数 short int long long long浮点 float double数据类型 宽度 取值范围signed char 1 -128~127unsigned char 1 0~255short 2 -2^15 2^15-1unsigned short 2

2020-07-26 18:12:13 240

空空如也

空空如也

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

TA关注的人

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