- 博客(39)
- 收藏
- 关注
原创 【python中类的介绍】
”"类中可以定义属性和方法。1、属性是类的数据成员2、方法是类的函数成员在类中定义方法时,第一个参数通常是类中可以定义属性和方法。属性是类的数据成员,方法是类的函数成员。在类中定义方法时,第一个参数通常是self,表示实例本身,其余参数表示用户传入的指定参数“”"")“”"上述代码解释:1、定义了一个MyClass的类,它有一个构造方法__init__和一个say_hello方法。2、__init__方法用于初始化实例属性namesay_hello方法用于输出问候语。
2023-12-12 19:01:06 1001
原创 shell编程
平时会使用cp 完成文件的拷贝c操作,今天将其封装在shell脚本中,完成。将test01中的文件拷贝到test02中。##1、执行拷贝操作v。已经完成了拷贝的操作。
2023-07-30 23:09:46 207
原创 最短路径问题
对于第一个a开始 遵循水平和垂直的方向,就有四个方向,分别是 上左下右–对于a,左边和上边都是边界,寻找下和右,发现右边b才和目标单词相同,现在已b为中心单词,根据上左下右四个方向继续寻找,发现没有和目标单词相等的字母,直接返回false即可。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。2、在给定的主函数里面递归的调用上面步骤一中写的函数,检查是否符合要求。
2023-07-02 23:30:41 262
原创 三次握手与四次挥手
首先,回顾一下计算机网络的分层,计算机网络为什么要分层呢URG: 标识紧急指针是否有效ACK: 标识确认序号是否有效PSH: 用来提示接收端应用程序立刻将数据从tcp缓冲区读走RST: 要求重新建立连接. 我们把含有RST标识的报文称为复位报文段SYN: 请求建立连接. 我们把含有SYN标识的报文称为同步报文段FIN: 通知对端, 本端即将关闭. 我们把含有FIN标识的报文称为结束报文段...
2021-05-31 22:25:12 210 1
原创 计算机网络的分层-OSI七层模型与TCP/IP五层模型
1、计算机网络为什么要分层?首先解释一下,计算机网络分层的原因:分层的原则:2、与分层相关的术语1、实体第n层中的活动元素称为n层实体,同一层的实体称为对等实体2、协议为进行网络中的对等实体数据交换而建立的规则、标准或者约定称为网络协议3、接口上层使用下层服务的入口4、服务下层为相邻上层提供的功能的调用如下图所示总结:计算机网络的分层OSI七层模型网络 为什么要抽象出五层,请参照这篇博文https://blog.csdn.net/qq_38646470/art
2021-05-17 21:28:49 686
原创 c++并发与多线程(一)
记录一下学习C++并发、线程、进程过程,并发VS并行并发:有两个或两个以上的任务(独立的活动),同时发生(进行),或者说**一个程序同时执行多个独立任务**。并行:顾名思义,同一时刻,可以同时处理多个操作,强调的是开始时间。之前的计算机是单核CPU,同一时刻只能实现一个任务:由操作系统调度,每秒钟进行多次所i为的“任务切换”(第一个任务10ms、快速切换到下一任务10ms.只要我速度够快,看起来就像几个任务同时进行了)。但是这只是一种假象的并发,并不是真正的并发。这种切换也叫做上下文切换,是有
2021-04-28 22:13:48 285
转载 程序编译的过程
一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。链接中,分为静态链接和动态链接一、预编译:主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下1.删除所有的#define,展开所有的宏定义。2.处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。3.处理“#include”预编译指令,将文件内容替换到它的位置,这个
2021-04-18 10:41:53 2825
原创 Versatile video coding----多功能视频编码建议书
概要ITU-T H.266建议书规定了一种被称为“通用视频编码”的视频编码技术。设计有两个主要目标。首先是指定具有压缩功能的视频编码技术这远远超出了此类标准的前几代,其次是要将该技术与以前的标准相比,它具有高度的通用性,可以在广泛的应用中有效使用。一些关键使用该标准的应用领域尤其包括超高清视频(例如3840×2160或7620×4320图片分辨率和10位的位深,如建议书1中所述。 ITU-R BT.2100),高动态视频范围和宽色域(例如,指定了感知量化或混合对数伽玛传递特性在Rec。 ITU-R BT.
2021-01-16 22:10:29 533
转载 C++中extern “C”含义深层探索
转载:http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式
2020-11-23 11:20:22 106
原创 c++基础知识面向对象----之封装
面向对象之封装c++的三大特征封装、继承、多态。封装是c++的三大特征之一一、什么是封装封装:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法进行有机结合。说明:函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中,被封装的元素隐藏了它们的实现细节–可以调用一个函数但是不能够访问函数所执行的语句。封装的意义:将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制1、封装意义一:在设计类的时候,属性和行为写在一起,表现事物,也
2020-11-15 19:18:33 225
原创 c++中类成员变量和成员函数
c++中类成员变量和成员函数c++中,类中的属性和行为 我们统一称为 成员属性 :成员属性 成员变量行为: 成员函数 成员方法1、成员变量、成员函数其实,类可以近似看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型,类这种类型是一个包含成员变量和成员函数的集合。类的成员变量和普通变量一样,也有数据类型和名称,占用固定长度的内存。但是,在定义类的时候不能对成员变量赋值,因为类只是一种数据类型或者说是一种模板,本身不占用内存空间,而变量的值则需要内存来存储类的成员函数也和普通函
2020-11-15 19:18:02 1064
原创 n知道C++#include<iostream > using namespace std;的含义吗?
简单介绍c/C++:C语言是:一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。现在最新的C语言标准是C17.C++是:C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论
2020-11-08 20:02:49 1270
原创 c++中的构造数据类型----结构体
C++结构体指针 常用用法及注意事项总述:c++结构体指针,顾名思义就是指向结构体的一个指针,这篇博客作用是记录c++结构体指针的常用用法及我经常犯的一个错误。定义结构体:struct My{My *left;My *right;int val;My(){}My(int val):left(NULL),right(NULL),val(val){}};一般结构体变量的访问方式:void test1(){My m;m.val = 1;cout<<m.val<<
2020-11-06 11:18:53 1092
原创 结构体之结构体作为函数参数
结构体作为函数参数作用:将结构体作为参数向函数中传递一般来说函数的参数传递方式有两种:值传递 地址传递具体可以参照这边文章https://blog.csdn.net/zhang2039/article/details/108547625一般来说函数的参数传递方式有两种:值传递 地址传递结构体作为函数的参数传递使用的就是引用传递,这样做的好处就是它的效率和指针一样高。当结构体很大的时候,避免传递结构体变量很大的值,节省内存,提高效率案例分析:#include<iostream>
2020-11-05 19:49:33 1435
原创 c++/c结构体的嵌套
结构体的嵌套顾名思义就是在一个结构体内包含了另一个结构体作为其成员即 结构体中的成员可以是另一个结构体动物园饲养员照顾动物案例分析//动物结构体定义 struct animal { //成员列表 string name; //名字 int age; //年龄 };//饲养员结构体定义 struct Breeder { //成员列表 int id; //编号 string name; //名字 struc
2020-11-05 17:13:13 1232
原创 c++/c结构体数组、结构体指针
结构体中自己常常弄不清的。两个常用的结构体数组、结构体指针1、结构体数组将自定义的结构体放入到数组中方便维护语法:语法: struct 结构体名 数组名[元素个数] = { {} , {} , ... {} }举例:struct student { //成员列表 string name; //姓名 int age; //年龄 int score; //分数 }int main() { stru
2020-11-05 17:07:26 1377
原创 结构体之引用结构体成员变量
引用结构体成员变量一个结构体包含一个或者多个成员变量,在实际使用中,就需要对其成员变量进行引用,对于一个已经定义了的结构体变量和一个指向该结构体的指针变量。可以用一下三种情况引用结构体 成员变量。1、由结构体变量名引用其成员:结构体变量名.成员名2、由指向结构体的指针变量引用结构体成员指针变量名 -> 成员名3、(*指针变量名).成员名结构体指针:指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么这个指针变
2020-11-05 17:02:01 17872
原创 this指针的概念
通过前面的学习我们知道在C++中成员变量和成员函数是分开存储的每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码那么问题是:这一块代码是如何区分那个对象调用自己的呢?c++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属的对象 this指针是隐含每一个非静态成员函数内的一种指针this指针不需要定义,直接使用即可this指针的用途:当形参和成员变量同名时,可用this指针来区分 在类的非静态成员函数中返回对象本身,可使用r
2020-11-02 16:59:32 264
原创 Jupyter 安装好了,可是网页打不开?
换了新的环境,重新反复 安装了Anaconda但Jupyter打不开了。不知道是不是安装了一些东西的步骤不对还是其他的原因。尝试了一些方法,1、先pip install --upgrade pip sudo pip install jupyter notebook2、重新下载pip install jupyter或者先卸载conda uninstall jupyterlab在重新安装。。。。。。还是无法打开C:\jupyter lab[I 10:11:01.214 LabApp] Jupyt
2020-10-21 10:22:46 9344 3
原创 c++中的友元的相关知识
c++中的友元c++中创建类的时候会有公共权限、保护权限、私有权限。往往是访问不到一个类中私有权限中内容的。在程序中,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术,这样一来两个类就可以共享数据。节省内存空间。 如果友元是一般成员函数或者类的成员函数,则称为友元函数,如果友元是一个类则称为友元类。友元类中所有的成员函数都是友元函数。接下来会分别介绍。友元的目的:就是让一个函数或者类 访问另一个类中私有成员 友元的关键字为 friend友元的三种实现:1、全局函数
2020-10-12 19:39:43 135
原创 c++/C语言之内联函数
内联函数在类声明内定义内联函数内联函数在C++中,用户可以创建实际上不调用的短函数,他们的代码在每次调用的程序行里得到扩展。这个过程类似于使用类似函数的宏。为使一个函数在程序行进行代码扩展而不被调用,只要在函数前面加上关键字inline即可。 例如,在下面的程序,函数max()在行内扩展而不被调用:#include <iostream>using namespace std;inline int max(int a, int b){ return a>b?a:b;
2020-10-08 21:41:41 452
原创 c++中函数属性初始化列表
初始化列表作用是:C++提供了初始化列表语法,用来初始化属性之前介绍的构造函数的主要作用就是给属性做初始化操作。这里提供了另一种新的初始化列表方法class Person {public:////传统方式用构造函数给属性初始化操作//Person(int a, int b, int c) {// m_A = a;// m_B = b;// m_C = c;//}//初始化列表方式初始化Person(int a, int b, int c) :m_A(a), m_B(b), m_C(c
2020-10-07 16:07:11 173
原创 c++中的构造函数和析构函数理解
c++中的构造函数和析构函数首先,在面向对象的语言c++中,“类”是核心。那么在定义和使用类的时候,对象的初始化和清理就是两个非常重要的安全问题。一个对象或者变量没有初始状态,对其使用后果是未知同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题。构造函数的作用:赋初值,初始化对象的数据成员,由编译器帮我们调用。无需手动调用。析构函数的作用:主要作用在于对象销毁前系统自动调用,执行一些清理工作,用于释放资源。(c++定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数)分别介
2020-10-07 14:51:46 194
原创 c++中的引用的相关知识
c++中的引用1、定义引用就是给一个变量起别名,定义好之后,对引用和变量操作效果一样。2、语法数据类型 &别名 = 原名举个例子int main() {int a = 10;int &b = a; //给变量a起别名//在这,& 读作引用。因此,声明可以读作 "b是一个初始化为 a的整型引用",cout << "a = " << a << endl; // 10cout << "b = " << b
2020-09-15 16:04:49 344
原创 c++中break语句和continue语句的区别
C++ 中c++中break语句和continue语句的区别break语句作用: 用于跳出选择结构或者循环结构break使用的时机:出现在switch条件语句中,作用是终止case并跳出switch出现在循环语句中,作用是跳出当前的循环语句实例一:int main() {//在switch 语句中使用breakcout << "请选择您挑战游戏的难度:" << endl;cout << "1、普通" << endl;cout &l
2020-08-28 16:32:52 861
转载 最小二乘法拟合多项式原理以及c++实现
转载博客:http://blog.csdn.net/lsh_2013/article/details/46697625最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。c++实现代码如下:#include <iostream>#include <vector>#include <cmath>using namespace std; //最小二乘拟合相关函数定义double sum(ve
2020-08-22 15:24:08 1860
原创 VVC/H.266中的划分函数void EncCu::xCheckModeSplit
VVC中的编码块的划分与HEVC中有很大的不同。VVC中专门的一个函数来实现划分xCheckModeSplit。在void EncCu::xCheckModeSplit中的会进行具体的QT.BT.TT的划分,在xCompressCUz这个函数也会调用xCheckModeSplit这里面的划分结果,首先先看一个EncTestMode,会得到具体的CU划分模式 ETM_SPLIT_QT, ETM_SPLIT_BT_H, ETM_SPLIT_BT_V, ETM_SPLIT_TT_H, ETM...
2020-08-17 15:02:48 1674 5
原创 HM中的TComDataCU和VTM中的CodingStructure和 CodingUnit的代码解释
在HM中TEncCU.cpp的文件中xCompressCU( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth DEBUG_STRING_FN_DECLARE(sDebug_), PartSize eParentPartSize )代码中每个深度的预测用的都是temp, 预测完后跟best比较并交换。best保留作为当前深度的预测数据, 而temp再次初始化。在下一深度的4个子CU预测中用的是...
2020-08-10 14:49:04 868
原创 VVC的VTM版本的下载,YUV格式视频播放器
一、现在的VTM版本已经到VTM-9.3了。官网给出了最新的的版本,感兴趣的小伙伴可以直接去下载.1、VTM下载网址:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM二、分享一个软件,一个是YUVPlayer打开YUV格式的视频同时我们编码生成的YUV和解码之后的YUV也可以通过其观看。1、打开网址:https://sourceforge.net/projects/raw-yuvplayer/点击下载即可,文件很小。一会就.
2020-08-01 16:18:54 2192
原创 冒泡排序算法 c++书写升序和降序排序
冒泡排序是非常经典的排序算法比如有8个随机的数字,现在把他们升序排列(有小到大排列出来)。当然想到的就是两个比较。这样会有好多轮比较。第一轮:从左往右开始,左边的和右边的比较,左边 > 右边,交换他们,然后接着向后比较。最后得到的就是这个最大值。第二轮:剩余的七个数在进行比较,最后又得出一个最大值...最后一轮 剩余两个数 比较一次叫好了 得到一个最大值看到上面的比较经过,我们发现有两个重要的参数、排序 需要比较的轮数 = 元素的个...
2020-06-21 20:38:45 4472
原创 函数的递归调用 递归函数 C++求汉诺塔问题
递归:在函数的调用中,有一种特殊的情况,比如一个函数直接的间接的调用自身,称其为函数逇递归调用。递归调用有两种形式:直接递归:在一个函数中调用自身间接递归:在一个函数中调用其他函数,而在其他函数中又调用了本函数递归调用主要包含两个步骤:递推和回归,我们利用函数的递归调用,分解为相对简单而且可以直接求解的子问题(递推阶段)然后这个子问题的结果逐层进行回带求职,最终求得原来复杂问题的解(回归阶段)注意:递归算法设计简单,但是相比较非递归耗时和占内存设计一个正确的递归过..
2020-06-18 19:37:54 440
转载 H.264/H.265/H.266三代视频编码的图像划分
在看文章的时候看到这篇在知网上面的作者写的这篇文章。可以很清晰的介绍了H.264/AVC、H.265/HEVC、H.266/VVC 视频编码标准中图像划分技术的演进过程,分析不同编码标准图像划分技术的差异。目前的视频编码标准都采用了基于块的混合编码方式,这种编码方式先以块为基本单元进行帧内或帧间的预测,然后对预测残差进行变换量化,最后将分块模式、预测信息以及量化后残差等进行熵编码,得到编码码流...
2020-05-01 22:11:36 6019
原创 求最大公约数用欧几里得算法
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。(以上来自百度百科)其中欧几里得算法也称为辗转相除法,主要方法就是用两个数相互除,可以用大的数除于小的数,得到余数...
2020-04-20 22:39:47 929
原创 H.266/VVC学习1- VTM6.0的安装和使用
H.266/VVC学习1 VTM6.0的安装和使用现在学习的是视频压缩编码方向的,将平时所学知识记录下来,一来可供自己复习使用 二来,感兴趣的同学可以一起交流一下。国际视频编码最新标准H.266/VVC在H.265/HEVC基础上,采用新的编码工具来提升编码效率。一、版本介绍:VS版本是VS2017VTM版本是 VTM6.0需要注意的是VTM在使用前,需要用cmake编译工具(CM...
2020-04-19 22:54:51 3778 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人