自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 920quiz+922复杂度+927quiz2

1、注意双向链表的操作中 只要默认已经访问了链表上的第k个元素,则其他operation就都是θ(1)*2、注意单向链表 替换第k个元素 是θ(1)*

2022-09-27 21:32:14 338 1

原创 Matlab复习回顾919+920预习Lab1

1.clear是清楚工作区 clc是清楚命令行内容2、关于符号变量subs(MATLAB函数)_百度百科3、 用1j来代表虚数部分更稳定(防止只写一个j和变量混淆)4、别忘了带点的运算操作都意味着“分别对每个数据进行操作”如下面这个 对数组里的每个数字进行平方操作5、匿名函数 用@引出6.如果要在同一幅图上画第二个图 那么就在画完第一个图后 用 hold on来保留一下这个图仓7.学会使用命令行 help+要查找的东西8.创建单位矩阵 可以用eye函数。

2022-09-20 11:08:30 199

原创 9_19 杂七杂八+开始填坑

另外 PA0里面就烦了公众号里提到的错误:没有事先看清楚题干数据的范围 int还是long long int自己看清楚哈。注意:setprecision单独使用是控制有效位数的,与fixed合用才是控制小数点后位数的。看清楚“只读”和“常量”的区别!用好constexpr能够提高效率,这个也是公众号里采用的做法。amortized time 这个概念在公众号里也谈到过 课件里也提了一下。以及这个点也忘了 throw和异常处理。今天开始重新填csdn的坑!

2022-09-19 21:26:08 215

原创 summer time~ schedule

考试周结束

2022-06-29 13:27:46 246

原创 CS100 Recitation 15 traits、SFINAE、认识模板元编程

这节课主要讲模板一、可变参数模板 variatic templatesscanf 比 cin快一些下面引入一种更快的读入函数,是竞赛常用的:读整数:可以解决99%的问题注意上面第二个模板参数就用了可变参数模板写了第二个函数以后,配合第一个read函数,就可以实现下面的功能: 包展开二、模板特例化 specialization 两个类型相同的情况下 是特例 返回true 实际上在这个头文件里面 有这些检验的实现: 这里用到了std::conditional 很方便的一个条件判断...

2022-06-22 22:26:58 110

原创 CS100 Recitation 14 模板、constexpr

1

2022-06-06 10:06:08 108

原创 5_21 一些坑

【C++】C++在类中对sort函数传递比较函数的几种方法_精致又勤奋的码农的博客-CSDN博客_c++ sort 比较函数sort函数自己的compare函数 在类内的话 cmp前面必须加

2022-06-06 08:19:49 47

原创 CS100 Recitation 13 STL、运算符重载 gkxx

一、STL剩余内容STL的组成:容器分为 顺序容器 和 关联容器有序关联容器的实现原理和 红黑树 有关无序关联容器的实现原理和 哈希表 有关迭代器、算法、适配器(Adapters) 、空间配置器(allocators)、仿函数(Functors)1、容器注意std::find返回的是一个迭代器MAP注意,这里的下标不一定是数字,map很像python中的dictionary2、迭代器插入迭代器必须保证v2里面有足够的空间!!STL中很.

2022-05-25 16:31:01 117

原创 5_23 黑马 map

一、基本概念map中所有元素都是pair,pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构使用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素,multimap允许容器中有重复key值元素#include <iostream>using namespace std;#

2022-05-23 09:59:01 115

原创 5_21 gkxx CS100 Recitation 12 迭代器、顺序容器、泛型算法

1、补充:vector<T> v4(n) 开了一个包含n个0的vector v4一、迭代器1、回顾我们之前的迭代方式:迭代器看起来像一个指针 注意.end()是最后一个元素的下一个位置.end()又叫尾后迭代器 the off-the-end iterator尾后迭代器是不能递增或者解引用的,这是未定义的行为基于范围的for语句的原理 range-for:前置加加减减的好处:不会发生额外的拷贝,对于迭代器来说,前置加加减减更好const..

2022-05-21 12:05:20 144

原创 Recitation 11 STL:: string,vector and iterators

一、stringSTL所有容器提供的都是 值语义 也就是说strings2(s1) 这种拷贝以后,s1就和s2没关系了一些操作上面第二点的原因: 根据我们上半部分recitation对于操作符重载的复习,我们知道,至少要保证一个不是内置数据类型 那么在这里也就是要保证至少有一个是std::string第三点的原因:加号具有左结合性s+"a" 出来的是个string,当然可以"a"+"b"上来就是两个内置数据类型char相加,当然不可以了!化解方法:直接写成"ab.

2022-05-18 22:39:58 79

原创 5_10 Recitation Recitation 11 IO库

一、运算符重载的回顾 operator overloading条件:1、运算符作用的对象中,至少有一个是类 类型的 at least one class-type parameter(例如无法重载两个指针相加的操作)2、不能改变优先级和结合性cannot change the precedence and associativity3、有一些运算符不能被重载 一个注意的点:因为这三个运算符都有一个共同的性质:运算顺序都是固定的!如果重载了,那么这种运算顺序就会被.

2022-05-18 21:51:38 187

原创 5_18 CS100 Memory management

1. 成员变量的创建比构造函数要早2. 写了有参构造函数,那么默认构造函数就不再可用,除非自己写3. Scoping and Memory注意,每一个变量在离开自己的作用域以后就会被free掉一个危险的task:返回指针4....

2022-05-18 18:03:28 61

原创 list容器 黑马程序员c++

1.1 基本概念功能:将数据进行链式存储链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表链表的优点:可以对任意位置进行快速插入或删除元素缺点:容器遍历速度,没有数组快;占用的空间比数组要大由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器 也就是说,

2022-05-16 10:04:27 1378

原创 5_11 模板(1) 黑马程序员

1.1 模板的概念:模板就是建立通用的模具,大大提高复用性模板不可以直接使用,它只是一个框架!1.2 函数模板1.2.1 语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表语法:template <typename T>函数声明或定义解释:template --- 声明创建模板typename --- 表明其后面的符号是一种数据类型,可以用class代替T --- 通用的数据类型,名称可以替换,

2022-05-11 11:29:43 117

原创 5_3 gkxx Recitation 10 拷贝与交换、资源管理类

零、复习接口继承 vs 实现继承接口继承:如子类重写父类的纯虚函数---每个子类都继承了这样一个“接口”,每个子类都必须给这个函数一个独有的定义,否则这个子类将还是一个抽象类实现继承:基类定义了一个有具体行为的虚函数,而非纯虚函数这个时候子类就有选择:它既可以选择直接继承这个虚函数,直接把基类的实现继承下来 直接用他也可以自己override重写一、Copy ControlCopy and Swap首先别忘了inline是干嘛的:C++ 中的 inline 用法

2022-05-04 15:31:35 509

原创 5_3 gkxx recitation 9 零碎知识点

一、默认实参 default argument上面的30会自动给第一个参数height但是注意:具有默认实参的参数只能是最后的几个上面这张ppt告诉了我们有默认实参函数的实质:函数重载gk说的作业中一个大坑:Default Argument Declaration一个函数可能被声明多次,但是 这个函数中的默认实参不可以被重新声明默认参数虽然不能被重复声明,但是可以再添加新的默认参数注意,上面24后面的参数必须都已经有默认参数了,且之前已声明(即80)...

2022-05-03 21:55:51 167

原创 5_3 gkxx recitation 9 继承、多态、抽象基类 查缺补漏

gk yyds1、一个子类对象当中包含一个完整的基类对象,例如基类对象中的private成员也在子类对象(哪怕子类访问不到)基类的成员函数中除了构造函数,其他的成员函数也会被继承下来2、C++的继承是真真正正写在内存里的继承,python是假的3、当我们构造一个子类对象时,必然要首先构造出一个基类的部分,所以必然有一个基类的构造函数被调用----先有父亲,再有儿子子类的构造函数在执行的时候必然首先调用基类的构造函数析构正好反着来sizeof(Derived) >= sizeo

2022-05-03 21:23:23 579

原创 5_2 C++ vector容器 STL

一、vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器二、构造函数功能:创建vector容器分为四种方式:默认构造函数,区间(左闭右开)中的元素拷贝给自身,n个elem拷贝给本身,拷贝构造函数#incl.

2022-05-02 11:34:22 72

原创 5_2 STL入门

一、STL初识:为了提高代码复用性STL: Standard Template Library 标准模板库STL从广义上分为:容器(container)、算法(algorithm)、迭代器(iterator)容器和算法之间通过迭代器进行无缝链接STL几乎所有的代码都采用了模板类或者模板函数1、STL六大组件容器:各种数据结构,如vector/list/deque/set/map等,用来存放数据。算法:各种常用的算法,如sort、find、copy、for_each等迭代器:扮

2022-05-02 10:02:09 98

原创 4_19 C++习题课+4_25上课

1.移动构造函数C++11 移动构造函数详解_Mr.codeee的博客-CSDN博客_c++移动构造函数

2022-05-02 08:46:50 39

原创 4_16 C++笔记 HW总结(类)

C++ explicit关键字详解_tiankong19999的博客-CSDN博客_explicit4_1 C++笔记 (3) 类和对象-对象特性_music猜想的博客-CSDN博客C++_拷贝赋值运算符详解_深入浅出_图文并茂_Dancing With Bugs的博客-CSDN博客_拷贝赋值运算符C++中的常成员函数以及const用于函数重载_Jared_Yang的博客-CSDN博客_常成员函数重载C语言中size_t类型详细说明【转载】 - jiangxiaobo - 博客园...

2022-04-17 21:52:00 104

原创 4_13 C++笔记 多态剩余内容

一、多态的原理剖析二、上课内容1、子类构造函数的一些坑在C++中子类继承和调用父类的构造函数方法_hemmingway的博客-CSDN博客_c++子类调用父类方法构造原则如下: 1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。 2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。 3. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数,则会调用...

2022-04-13 12:06:12 308

原创 4_11 C++笔记 多态的基本语法

1.上课部分知识点:一个是默认构造函数在写了有参等其他类型的时候不会再自动提供了,所以最好自己写一个再就是一个新的知识点:向上造型(似乎和多态有关)以及C++随笔:父类和子类指针的指向 - 知乎(不推荐)2. 多态的基本语法多态分为两类:静态多态:函数重载 和 运算符重载, 以及复用函数名(也就是我们不加virtual关键字的那种)动态多态: 派生类 和 虚函数 实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数

2022-04-11 21:19:39 662

原创 4_5 C++笔记 继承

继承是面向对象三大特性之一下级别的成员除了拥有上一级的共性,还有自己的特性。这个时候就可以考虑利用继承的技术,减少重复代码1. 继承的基本语法语法: class子类 : 继承方式 父类子类 也称为 派生类父类 也成为 基类派生类中的成员,包含两大部分:一部分是从基类继承过来的,一部分是自己增加的成员从基类继承过来的表现其共性,而新增的成员体现了其个性下面是一个小例子:三个类:Java,Cpp,Python都继承了BasePage这个父类#include.

2022-04-05 21:40:04 722

原创 4_4 C++笔记 (1)

一、运算符重载定义:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型1. 加号运算符重载作用:实现两个自定义数据类型相加的运算对于内置的数据类型,编译器知道如何进行运算#include <iostream>using namespace std;//加号运算符重载class Person{public: int m_A; int m_B;//1、成员函数重载+号 // Person operator+(Person &

2022-04-04 14:42:46 105

原创 4_3 C++ 笔记 友元

这个里面的程序很重要:C++ const对象(常对象)写的类很好,看一眼👆里面综合了 初始化列表 和 常对象 等知识一、友元在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元友元的目的:让一个函数或者类 访问 另一个类中的私有成员友元的关键字为 friend友元的三种实现:1.全局函数做友元其实 就在 类的开头写个 之后会调用私有属性的函数的 函数声明 就行#include <iostream>#include <s

2022-04-03 23:44:10 801

原创 4_2 C++笔记(1)

一、静态成员函数所有对象共享同一个函数静态成员函数只能访问静态成员变量#include <iostream>using namespace std;class Person{public: static void func() { m_A = 100;//静态成员函数只能调用静态成员变量 cout << m_A << endl; cout << "static void func 调用" << endl; }

2022-04-02 11:08:26 553

原创 4_1 C++笔记 (3) 类和对象-对象特性

一、深浅拷贝先补充析构函数的一个用途:如果在一个类中我们用new开辟了一块堆上的内存,那么我们就应该自己提供析构函数并在里面用delete进行内存的释放而前提是:拷贝构造函数中一定要用深拷贝在堆区创建新内存,否则会导致浅拷贝带来的重复释放堆区的问题#include <iostream>using namespace std;class Person{public: Person() { cout << "Person的默认构

2022-04-01 23:33:19 242

原创 4_1 C++笔记 (2)

一、函数提高1.函数默认参数(如果我们自己传入数据,就用自己的数据;如果没有,就用默认值)int func(int a, int b = 20, int c = 30)注意事项:如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有默认值如果函数的声明有了默认参数,那么函数的实现就不能有默认参数声明和实现 只能有一个有默认参数int func(int a = 10, int b = 10);int func(int a, int b) {...

2022-04-01 20:41:58 53

原创 4_1 C++笔记(1)

一、内存四区1.全局区:存储全局变量、静态变量、字符串常量、全局常量(const修饰的全局变量)2.代码区:存放CPU执行的机器指令,具有两个特点:共享、只读3.栈区:存放局部变量和形参注意事项:不要返回某一个函数中局部变量的地址,因为栈区的数据在函数执行完之后自动释放。(有可能编译器会允许第一次这样的操作,是因为有的编译器会保留释放前的数据)栈区开辟的数据由编译器自动管理、释放4.堆区:由程序员分配释放,若程序员不释放,程序结束时由操作系统回收在C++中利用new来开辟一块内存

2022-04-01 17:33:42 429

原创 3_31 C/C++ 作业启示以及 memset陷阱

memset陷阱 - Norcy - 博客园memset将int,bool数组置为0是可以的,但置为1是不行的;将char数组置为'1'是可以的。Why?memset是按字节赋值,char是字节,int是4个字节,所以char是可以的,int是不行的。(可以输出sizeof(char), sizeof(int)查看)memset第一个参数是开始填充的地址,第二个参数是填充的byte,第三个参数要填充的字节数(注意是字节数)。比如置为1,那么赋值的结果应该是00000001000000

2022-04-01 15:05:35 99

原创 3_29 黑马C++笔记

1.using namespace std; 名称空间太大了,所以可以少引进一些,就直接用例如 using std::cout;

2022-03-30 00:00:29 47

原创 3_28 C++笔记 类

public:类内可以调用,类外可以调用,子承父业private:类内可以调用,类外不可调用,子不成父业protected:类内可以调用,类外可以调用,子承父业C++中struct和class的唯一区别使,struct默认是public但是class默认是private成员属性设置为私有的好处:1.自己可以控制读写的权限2.对于写 可以检测数据的有效性C++ 函数参数传递的三种方式 (传参、传地址、传引用)_赫萝的红苹果的博客-CSDN博客_c++函数传址以前没有注意到的一个

2022-03-29 19:14:03 456

原创 3_28 lecture

1.成员函数是属于这个类的,但是只能通过这个类的对象来调用所以对于同一个类的不同对象而言,成员函数都是同一个函数,但是成员变量则是不同的,是各自独立的新知识:C++的this指针C++ this指针详解_C语言中文网2.【C++】std::是什么? - mhq_martin - 博客园std::cout<<std::endl;//换行这也是用using namespace std; 的原因3.尚待消化的新知识点:析构函数...

2022-03-28 10:07:13 668

原创 外部性引起的无谓损失

涂红的区域表示的是已经实现了的正向的社会价值而绿色三角形区域强调的是没有实现的社会价值所以这里的无谓损失不能单纯想着“社会总剩余的差值”因为在这种考虑因外部性而移动的曲线图中,红色区域是一直都有的!要和税收、关税、价格上下限的那些进行区分!那些是严格遵循“社会总剩余的差值”的!...

2022-03-27 17:16:47 3042

原创 3_22 recitation

1.C语言的abs只能用来对 整数 取绝对值!!! 否则会出错!

2022-03-22 20:17:14 46

原创 3_21 Memory

Static variable:有全局的功能,但仍然只能在一个函数内被重复调用如第一次调用函数由1变成3,那么下一次进入这个函数的时候这个变量是3,而不是1static变量及其作用,C语言static变量详解extern 关键字extern的使用详解(多文件编程)——C语言 - 蓝海人 - 博客园...

2022-03-21 10:23:44 909

原创 DFS 深度优先搜索

基于作业的现实需要,必须恶补一下了第三章 搜索与图论y总说“凡是求什么最短的,最少的,用宽度优先搜索BFS凡是思路比较奇怪的,或者对空间要求比较高的,用深度优先搜索DFS”DFS俗称“暴搜”,最重要的是 顺序!用什么样的顺序,来把题目中的所有的方案都遍历一遍涉及到一个新的知识点:数组在全局中定义的时候默认值是0【C / C++】关于数组默认初值问题_辉小歌的博客-CSDN博客_c++数组默认值另外puts("")可以起到一个换行的作用,即光标从上一行的最后移到下一行的开始

2022-03-20 11:43:45 1127

原创 3_19 C语言笔记整理

之前一整个周都太忙了。。。编程作业debug花了我大半个周的时间。。。效率还是有点低了而且摆烂了几个晚上,看来不能再熬夜了今天一定要早睡!手机不能带到床上了哈哈哈哈否则根本不想睡那么加下来开始C语言这一个多周内容的一个复习的大动作:1. memspy函数:数组之间内容的复制(当然也有字符串)C 库函数 – memcpy() | 菜鸟教程...

2022-03-19 22:36:04 677

空空如也

空空如也

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

TA关注的人

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