自定义博客皮肤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)
  • 收藏
  • 关注

原创 左程云视频笔记25 单链表的反转

摩西摩西

2022-06-07 17:29:11 176 1

原创 左程云算法笔记025

2022-06-06 18:28:27 177

原创 左程云视频算法笔记03 选择排序

题目二选择排序比如一个数组有10个数字,它们的下标 是 0 到 10-1,在3下标位置处有个数字为2,它与0下标位置处的数字对比,如果小于,则放到0下标位置处,然后减减,接着在4下标位置处有个数字5,它与1下标位置处对比,如果小于,调换位置,在减减#include <iostream>using namespace std;void Swap(int arr[], int i, int j){ int temp = arr[j]; arr[j] = arr[i]; arr[

2022-05-24 19:10:53 184

原创 左程云视频笔记02什么叫算法

01) 有具体的问题02) 有设计解决这个问题的具体流程03)有评价处理流程的可量化指标算法的分类1)分类当然非常多2)对于新手学习特别重要的一个分类1明确知道怎么算的流程2明确知道怎么尝试的流程题目一:给定一个参数N,返回:1!+2!+3!+4!++++N的结果解决这个问题的具体流程A的设计的流程是: B的设计的流程是:1!1; 1!12!12;

2022-05-24 16:36:22 106

原创 左程云视频笔记01位运算

位运算#include <iostream>using namespace std;void print(int num){ for (int i = 31; i >= 0; i--) { cout << ((num & (1 << i)) == 0 ? "0" : "1") <<" "; } cout << endl;}void test0

2022-05-23 17:38:44 110

原创 c++primer 第十九章笔记 02运行时类型识别

19.2 运行时类型识别typeid运算符:用于返回表达式的类型dynamic_cast运算符:用于将基类的指针或引用安全地转换成派生类的指针或引用将这两个运算符用于某种类型的指针或引用,当该类型含有虚函数,运算符将使用指针或引用所绑定对象的动态类型适用的例子:使用基类对象的指针或引用执行某个派生类操作并且该操作不是虚函数假设无法使用虚函数:使用RTTL运算符注意:存在风险,建议定义虚函数而非直接接管类型管理的重任19.2.1 dynamic_cast 运算符使用形式//type必须是一个

2022-05-20 17:59:28 137

原创 c++primer 第十九章笔记 01 控制内存分配

19.1控制内存分配比如你做一款应用程序,它对内存有特殊的需求,编译器自带的标准内存管理机制无法直接应用于这些程序它需要我们自定义分配的细节,我们要做的事情就是将关键字new将对象放置在特定的内存空间中,我们要重载new运算符和delete运算符以控制内存分配19.1.1重载new和delete...

2022-05-17 17:35:48 183

原创 c++primer 笔记03多重继承与虚继承

18.3多重继承与虚继承多个直接基类中产生派生类的能力,多重继承的派生类继承了所有父类的属性18.3.1多重继承派生类的派生列表中可以包含多个基类,但这些类不能是final的class ZooAnimal {};class Endangered{};class Bear:public ZooAnimal{};class Panda:public Bear,public Endangered{/**/};多重继承的派生类从每个基类中继承状态Pandda对象的概念结构 {

2022-05-10 18:12:46 267

原创 c++primer 笔记 02 命名空间

18.2命名空间命名空间污染:应用程序用到多个独立开发的库(内含大量的全局名字,如类,函数模板)就会引发名字冲突命名空间:命名空间分割全局命名空间,每个命名空间是一个作用域18.2.1命名空间定义namespace cplusplus_primer{ class Sales_data{}; Sales_data operator+(const Sales_data&, const Sales_data); class Query{}; class

2022-05-07 16:16:48 309

原创 c++primer 第十八章笔记 01异常处理

ZXZX

2022-04-28 18:24:27 1053

原创 C++primer 第十七章笔记05 IO库在探

格式控制 ,未格式化IO和随机访问17.5.1格式化输入与输出

2022-04-22 17:49:52 733

原创 c++primer第十七章 04随机数

17.4 随机数头文件 random通过一组协作的类来解决随机问题引擎类:生成unsigned 随机数序列分布类:使用一个引擎类生成指定类型的,在给定范围内的,服从特定概率分布的随机数17.4.1 随机数引擎和分布 default_random_engine e; for (size_t i = 0; i < 10; ++i) { //e()调用对象来生成下一个随机数, e是一个类对象,它有一个函数调用 cout << e() << " "; }

2022-04-16 18:27:41 912

原创 c++primer第十七章 03正则表达式

正则表达式:一种配合string 描述字符序列的的方法,我怀疑这是从编译原理这本书做出来的玩意17.3.1使用正则表达式库 //查找不在字符c之后的字符串ei ,例如:aei,bei, 而不是 cei,cee,cbi string pattern("[^c]ei"); //这是用来给regex提供的正则表达式语言用的 pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]*]"; //cout << pattern << en

2022-04-05 19:20:14 877

原创 c++primer第十七章02 bitset类型

17.2 bitset类型包含头文件 bitset17.2.1 定义和初始化bitset //类模板,32表示的是位数,左边是高位,右边是低位,而且低位是1,还是unsigned的 bitset<32>bitvec(1U); //bitvec1比初始值小;初始值的高位被抛弃 //只有13位 ,f表示1111,e1110 ,e1110,b1011 //1011 1110 1110 1111 //只能表示为1111011101111 。高位101被截断了 bitset<13&

2022-04-04 00:10:11 283

原创 c++primer 第十七章笔记 01tuple类型

tuple类型 //tuple看作一个[快速而随意]的数据结构 //三个成员都设置为0 //tuple<size_t, size_t, size_t>threeD; //必须使用直接初始化,tuple的构造函数是explicit8789890-= tuple < string, vector<double>, int, list<int> >someVal("constants", { 3.14,2.719 }, 42, { 0,1,2,3,4 })

2022-03-31 19:31:25 633

原创 c++primer第十六章模板特例化

16.5模板特例化//第一个版本,可以比较任意两个类型template<typename T>int compare(const T&p1, const T&p2){ cout << "太过泛型的compare版本"<<endl; return strcmp(p1, p2);}//第二个版本处理字符串字面量template<size_t N,size_t M>int compare(const char(&

2022-03-28 23:51:12 1288

原创 c++primer 第十六章笔记 可变参数模板

16.4可变参数模板之前的…就是参数包//Args是模板参数包,rest是函数参数包//Args表示零个或多个模板类型参数//rest表示零个或多个函数参数template<typename T,typename ... Args>void foo(const T& t, const Args& ... rest);void testo01(){ int i = 0; double d = 3.14; string s = "how now brown

2022-03-24 19:01:15 1384

原创 c++primer第十六笔记笔记 重载与模板

16.3重载与模板如果同样好的函数中没有非模板函数,而有多个函数模板,且其中一个模板比其他模板更特例化,则选择此模板编写重载模板template<typename T>string debug_rep(const T& t){ ostringstream os; os << t; return os.str(); //返回os绑定的string的一个副本}template<typename t>string debug_rep(t*

2022-03-24 00:13:28 540

原创 c++primer 第十六章笔记 16.2模板实参推断

模板实参推断编译器通常不是对实参进行类型转换,而是生成一个新的模板实例using namespace std;template<typename T>T fobj(T,T);template<typename T>T fref(const T&, const T&);void test01(){ string s1("a vlue"); const string s2("another value"); //const被忽略

2022-03-18 23:46:53 628

原创 c++primer第十六章笔记

人生的旅途何时才能开满鲜花,若无荆棘缠身那高峰又如何到达16.1定义模板//如果两个值相等,返回0如果v1小返回-1,如果v2小返回1int compace(int v1, int v2){ if (v1 < v2)return 1; if (v2 < v1)return 1; return 0;}//参数类型不同,其他全部相同int compace(double v1, double v2){ if (v1 < v2)retur

2022-03-08 00:15:27 1452

原创 c++priemr 第十五章 文本查询程序再探

难到爆炸,只能抄答案了15.9.1节练习(a)NotQuery OrQuery AndQuery WordQuery WordQuery WordQuety(b)和a一样©AndQUery WordQuery WordQuery AndQuery WordQuery WordQuery OrQurty15.32 当Query对象被拷贝,移动,赋值或销毁时,执行默认操作,即调用shared_ptr对应的控制成员。15.33 Query_base没有自己的数据成员,进行这些

2022-03-06 18:02:07 516

原创 c++priemr第十五章笔记 15.8容器与继承

容器与继承#include <iostream>#include<vector>#include<string>using namespace std;class Quote{public: Quote() = default; Quote(const string &book,double sale_price):booNo(book),price(sale_price){} const string& isbn(

2022-02-27 18:47:57 369

原创 C++primer十五章笔记15.7构造函数与拷贝控制

15.7构造函数与拷贝控制位于继承体系中的类也需要控制当其对象执行一系列操作时发生什么样的行为(创建,拷贝,移动,赋值和销毁)如果一个类没有定义拷贝控制操作,则编译器会给出一个合成的版本,可以被定义为被删除的函数15.7.1虚析构函数为什么需要:当我们要动态分配继承体系中的对象时,就该用到虚析构函数,当我们delete一个动态分配的对象的指针时将执行析构函数,可有时候出现指针的静态类型与被删除对象的动态类型不符的情况时,我们就一个在基类定义一个虚析构函数,以确保执行正确的析构函数版本。class

2022-02-25 19:07:21 445

原创 c++primer第十五章笔记15.6继承类中的作用域

##15.6 继承类中的类作用域 //每个类都定义自己的作用域,当存在继承关系,派生类的作用域嵌套在其基类的作用域内 //如果一个名字在派生类的作用域内无法正确解析,则编译器会前往基类的作用域寻找该 //名字的定义,就是因为有这层层的继承嵌套关系,派生类才能使用自己的成员一样使用基类的 //成员 Bulk_quote bulk; //isbn()是在Quote中的函数, // 先从Bulk_quote开始找,没有就往上一层的Disc_quote基类中 //找,没有就从Quote基类中找,最

2022-02-17 18:58:50 452

原创 c++primer 第十五笔记 访问控制与继承

15.5 访问控制与继承protected:它希望与派生类分享但是不想被其他公共访问使用的成员一些性质:和私有成员类似,受保护的成员对于类的用户来说是不可访问的和公有成员类似,受保护的成员对于派生类的成员和友元来说是可访问的派生类的成员或友元只能通过派生类对象来访问基类的受保护成员派生类对于一个基类对象中的受保护成员没有任何访问特权class Base{protected: int prot_mem;};class Sneaky :public Base{ friend v

2022-02-15 15:18:01 374

原创 c++primer 第十五章笔记

15.1 oop:概述面向对象程序设计核心思想数据抽象 ,继承,动态绑定

2022-02-04 19:26:22 748

原创 2021-01-14

c 语言 郝斌p153 结构体#include<stdio.h>struct Student //这是结构体,为了解决一些复杂的事物{ int age; float score; char sex; }int main(void){ struct Student st = {80,66.6,'F'};//这是结构体变量 /* int age; float score; char sex; in

2021-01-14 22:34:17 225

原创 2021-01-12

c 语言 郝斌动态内存跨函数使用void f(int **q){ *q =(int *) malloc(sizeof (int)); //这个等价于p = (int *)malloc(sizeof(int)); *q = 5; //*q等于什么?等于取的*p的地址,*p只能存地址,并不能存整数 **q =5; // 这个才是正确的}int main(void){ int *p; f(&p); printf("%d\n",*p);}...

2021-01-12 23:03:23 52

原创 2021-01-11

c 语言郝斌p150静态变量不能跨函数使用#include<stdio.h>void f(int **p);int main(vodi){ int *q; //这是一个指针变量 f(&p); //要想取得这个指针变量地址需要用到& printf("%d",*q); //执行没有问题,但是这段话语法是没错的,但逻辑错了。因为这整个程序全部都是静态分配的 return 0; } void f(int **p) // 所以得用 int ** 变

2021-01-11 22:56:02 41

原创 2021-01-10

c 语言郝斌p147int main(void){ int i =110; int *q = &i; int **y = &q; int ***b = &y; /* int *q是一个指针变量,抛开*,哪它就是一个变量,一个变量就是有一个地址,它是一个int变量地址。 int **y是一个二级地址,它指向*q,但是它不能指向i的地址,因为它只能指向 int * 变量类型的 地址,它也是一个int变量地址。 int ***b是一个

2021-01-10 23:37:58 50

原创 2021-01-09

c 语言 郝斌p146动态内存和静态内存的比较静态内存是由系统自动分配,由系统自动释放静态内存是在栈分配的。(什么是栈:这个我说不来,但是懂一点,可以到b站搜索 汇编语言紫狐遗梦这位up主第p63开始看会有一些详细理解)动态内存是由程序员手动分配,手动释放动态内存是在堆分配的。(这个郝斌老师说是跟栈对立的一种东西)...

2021-01-09 23:03:35 56

原创 2021-01-08

c 语言 郝斌:动态一维数组示例#include<stdio.h>#include<malloc.h>int main(void){int a[5]; //如果int占四个字节的话,则本数组总共包含有20个字节,每四个字节被当作了一个int变量来使用int len;int * parr; // 定义了一个指针变量parrprintf(“请输入你要存放的元素的个数:”);scanf("%d",&len); //输入五parr = (int )malloc

2021-01-08 23:07:41 55

原创 2021-01-07

C 语言 郝斌:p142 malloc的第二种用法#include<stdio.h>#include<malloc.h>void f(int q) //p 是q的一份拷贝{ //*p =200; //error// q = 200;*q =200 ; // *q代表的是四个字节}int main(void){ int * p =(int *)malloc(sizeof (int )); // *p开创了一个空间指向了 malloc返

2021-01-07 22:50:58 91

原创 2021-01-05

c语言-郝斌 :p141 malloc函数介绍#include<stdio.h>#include<malloc.h> //不能省int main(void){int i=5 ;int * p =(int )malloc(4);/1.要使用malloc函数,必须添加malloc.h函数头文件2.malloc函数只有一个参数,并且参数是整数。3.4 表示请求系统为本程序分配4个字节。4.malloc函数只能返回第一个字节的地址。5. int*p这行分配了八个字节

2021-01-05 23:53:49 193 2

原创 2021-01-04

动态内存分配【重点难点】传统数组的缺点:1.数组长度必先事先预定,且只能是常整数,不能是变量例子:int a[5]; //okint len = 5; int a[len];//error2.传统形式定义的数组,该数组的内存程序员无法手动释放在一个函数运行期间,系统为该函数中分配的数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放3.数组的长度一旦确定,其长度就不能更改数组的长度不能在函数运行的过程中动态的扩充或缩小4.A函数定义的数组,在A函数运行的期间可以被

2021-01-04 23:07:13 88 1

空空如也

空空如也

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

TA关注的人

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