自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-07-01

Lua语言的16进制转b进制local is = "123ABC"sum = 0for i = 1, #s, 1 do local t = string.byte(s, i) print("t =", t) if(t >= 48 and t <= 48 + 9) then t = t - 48 elseif(t >= 65 and t <= 70) then t = t - 55 end sum = s

2021-07-07 12:11:03 139

原创 unique使用方法

使用方式函数unique原形iterator unique (iterator first, iterator last, pre);参数类型以及返回值都是迭代器返回值: 是排序好的元素的最后一个元素位置第三个比较方式:是判断什么条件两个是相同的,然后参照unique的函数板子进行操作函数原型模板如下(类似官方使用,具体看参考地址):iterator my_uniqu(iteraotr first, iitera last){ if(first == last) return l

2021-04-22 22:51:26 1078

原创 sprintf fprintf printf

使用规则#include <iostream>#include <cstring>using namespace std;int main(){ char s[100]; int a = 10 , b= 20, d = 30; sprintf(s,"%d %d",a,b); for(int i = 0;i < strlen(s);i++) if(strchr(s,s[i])!=NULL) cout <<

2021-04-18 17:30:50 149

原创 二叉树红黑树等知识点

树的知识点https://juejin.cn/post/6844904205526777864#heading-26优先队列的说实现代码编程珠玑

2021-04-14 20:26:05 90

原创 可变参数列表的使用方法

待更详细的总结使用va_list 等参考资料https://www.runoob.com/cprogramming/c-macro-va_start.htmlhttps://blog.csdn.net/edonlii/article/details/8497704https://www.cnblogs.com/coolYuan/p/10181011.html

2021-04-14 20:24:46 110

原创 关于可变参数列表的使用方法

待更详细的总结使用va_list 等参考资料https://www.runoob.com/cprogramming/c-macro-va_start.htmlhttps://blog.csdn.net/edonlii/article/details/8497704https://www.cnblogs.com/coolYuan/p/10181011.html

2021-04-14 20:21:47 103

原创 c++快读板子

快读比较简单inline int read(){ int sum = 0 , w = 1 ; char c; c = getchar(); while( c < '0' || c > '9') { if(c == '-') w = -1; c = getchar(); } while(c >= '0' && c <= '9') { sum = sum *

2021-04-10 15:16:25 284

原创 deque的使用方法

deque队列的使用方法使用方法与vector一样结构不一样,如图,亮度可以插入以及上出,就像两个栈,非常类似,但是一段插入之后,可以从另一端处,deque double end queue函数使用。 size resize front back clear pop_back push_back push_front pop_front迭代器:begin,end,insert函数使用方法一模一样[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yu4Rf3E

2021-04-10 10:35:11 323

原创 vector容器的详细使用方法

补充内容begin, end,返回的是迭代器的位置,并不是指针data()函数可以返回的是第一个元素指针的位置end(),返回的最后一个元素后面一个位置,也就是元素后端的占位符rend(),从后往前的第一个元素的位置resize(),重新设置大小,添加元素之后v.resize()该函数的使用方法是:有数据大小之后重新设置大小,多退少补v.reserve :据说给的是容量,能够存储的最多的长度, size是长度 capacity 是容量push_back()还有与之相对的是pop_back

2021-04-09 23:38:33 201

原创 重载运算符之<< 和 >>

重载运算符 << 和 >>只能重载为全局函数cout 是 ostream 类的对象,cin 是 istream 类的对象,要想达到这个目标,就必须以全局函数(友元函数)的形式重载<<和>>否则就要修改标准库中的类,这显然不是我们所期望的代码测试效果#include <iostream>#include <iomanip>using namespace std;class Complex{private:

2021-04-09 15:20:11 4390 1

原创 运算符+-*/等重载以及如何选择重载类型(成员函数 或则还是 全局函数)

运算符重载不改变其运算规则和顺序#include <iostream>#include <iomanip>using namespace std;class Complex{private: double m_a, m_b;public: //以全局函数的形式进行重载 friend Complex operator+(const Complex &a, const Complex &b); friend Complex

2021-04-09 14:38:20 363 1

原创 运算符重载之注意事项

运算符重载一、可以重载的符号1.比较常用的运算符算符运算符:+ - * / %复合算数运算符: += -= *= 类似<< 和 >>[] ++ – delete new ()所有的符号为:+ - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++

2021-04-08 14:55:19 927

原创 sort函数和优先队列的自定义方式的梳理

等修正并理解清楚!

2021-04-07 20:36:17 110

原创 运算符重载

一、介绍运算符重载指的是对运算符的重新定义,使其支持特定类型的数据计算主要是用于类重载运算符是重载函数的特殊情况C++ 自带的运算符,最初只定义了一些基本类型的运算规则。当我们要在用户自定义的数据类型上使用这些运算符时,就需要定义运算符在这些特定类型上的运算方式。...

2021-04-07 20:34:52 195

原创 友元函数的使用方式

一、介绍个人认为该函数的作用及时能够是: 非成员函数可以使用 私有的 成员变量用途: 便于写 sort函数 和 优先队列 的 重载函数调用运算符()二、 专业解释:一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。现在,我们来介绍一种例外情况——友元(friend)。借助友元(friend),可以使得其他类中的成员函数以及全局范围内的函数访问当前类的 private 成

2021-04-07 20:22:24 1107

原创 成员函数与非成员函数的使用与区分

1、区分方式成员函数与成员变量都是类当中的定义函数、变量 在类中: 成员函数 成员变量函数不在类中: 全局函数2、局限性全局函数无法访问类中的 私有成员如果确实需要,那么需要将该函数声明为友元函数举例class Student{private: string name; int age;public://构造函数必须是public,不然就无法访问了,私有变量也无法复制 Student(string name,int age) : name(name)

2021-04-07 19:54:17 2510 1

原创 指针与函数

一、指针作为函数参数void swap(int *a, int *b){ int c; *a = c; c = *b; *b = *a;}int main(){ int a = 3, b = 4; swap(a, b); cout << a << b << endl; return 0;}比较简单 也比较好理解二、指针作为函数返回值int *ft(int *n){ if(

2021-03-31 16:23:02 78

原创 c++文件读写的三种方式(输入输出重定向、fopen、文件输入输出流)

一、输入输出重定向FILE * freopen( const char * filename, const char * mode,FILE * stream)freopen( “地址”,“模式”,“文件流”)内存地址模式: 读 r ,写 w, 可读可写 w+文件流:stdin:标准输入流,默认是从键盘输入数据stdout : 标准输出流,默认是输出到屏幕stderr :标准错误流,默认是屏幕格式:int main(){ freopen("D:\\001\\1.

2021-03-31 15:54:42 1290

原创 指针字符串 与 const char * 即const * char 的详细使用讲解

指针字符串的使用问题一、直接定义字符串指针的使用注意事项定义字符串指针的时候 const char *, 和字符串本身相同,就不会出现警告const char * == char const *,作用:const char * p ,表示的是指针p指向的数值不能修改, 但是可以通过本身自己去修。不能通过指针修改指针对应的数值,但是其对应的数值,可以通过本身修改二、会出现警告的版本,能正常输出,但是不能修改int main(){ char *str = "hellow"

2021-03-30 18:23:12 9514 1

原创 链式前向星代码实现与理解

前提:理解好什么是前向星?参照上一篇博客,然后看本文,会有所帮助链式前向星前向星:使用前向星的head[i]数组表示方法,但不排序。head[i]:表示边集的序号链式:head[i] 表示以i为起点对应的边集中的编号,每次更新i的时候,将之前保存的数值,放入next中保存,这就有了寻找的踪迹,和并查集查找父节点的方式一样综合起来就是链式前向星链式前向星的插入int cnt ; // 记录边数int head[maxn]; // 记录边集对应的边的位置 void addedge(int

2021-03-14 17:10:55 179

原创 前向星

理解前向星定义:参照来源: (https://blog.csdn.net/acdreamers/article/details/16902023)前向星:对所有输入的边的集合,进行排序。 按照起点、终点、权值进行排序需要保存变得开始位置、其实位置、权重head[i]: 以i为起点的边在边集数组中的位置len[i]: 以i为起点的边的个数实现代码#include <iostream>#include <cstring>#include <algorith

2021-03-14 15:27:42 80

原创 单调栈的应用

单调栈的使用单调栈的分类单调递增栈单调递减栈所谓的递增和递减,相对的是:栈顶 — 栈底的数据大小表示栈顶 -> 栈底 从小到大 ,单调递增栈顶 -> 栈底 从大到小, 单调递减单调栈的实现方式(举例用单调递增栈)如果栈空入栈栈非空,此时栈顶元素 >= 入栈元素,入栈栈非空,此时栈顶元素 < 入栈元素,则元素出栈,直到栈顶元素 >= 入栈元素,或者栈为空为止, 然后入栈伪代码如下: stack<int> st;

2021-02-23 16:17:43 129

原创 素数判断与素数筛选法

素数筛选法方法一:直接判断,思想简单,实现比较简单,但是复杂度过高bool isprime(int a){ for(int i = 2;i * i <= a;i++) { if(a % i ==0) return false; } return true;}方法二:素数筛选法(Eratosthenes 筛法)只有素数才能当筛子筛掉对应的倍数,不超过要求的范围即可遍历一遍代码void getPrime(int n){

2021-02-19 16:59:15 236

原创 sort函数svip讲解并举例说明

sort函数排序的三种方式使用1.自带库函数(用的少) 默认从小到大#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>using namespace std;void printArr(int a[],int n){ for(int i = 0 ;i < n;i++) cout << a[i] <

2021-01-24 17:06:56 258

原创 高进度算法与压位高进度苏算法的详细讲解 解决A+B数字500位

实现高进度算法何为高进度?当数据类型无法保存对应的数字的时候,我们必须要采用新的方式来进行求解问题,longlong–对应19位数 int 21位数 ,超过这些数据就无法保存了,那就采用字符串进行保存或者是字符数组实现方式先保存对应的数据,然后模拟数学中的竖式计算需要注意进位操作即可代码注意事项相加的数组最好设置为int类型数据需要逆序存储,方便进位最好可以判断下2位数+2位数 是否能够有进位,需要多判断一位代码实现方式如下,代码需要在理解之后手动自己敲一遍,加深印象#

2020-12-17 16:33:16 203

原创 高进度加法与压位高精度加法的习题(数楼梯)

高进度算法使用习题一题目::数楼梯题目描述:题目分析:本题采用了高进度与菲薄拉切数列求和普通高进度算法理解高进度加法实现特点,模拟竖式计算,如果数字之和大于10就可进位a. 可以先把所有的数字相加, 然后再统计判断是否需要进位b. 可以边加边判断时候需要进位,下面我将会采用两种方式进行展示加法最后的结果一定是大于或者等于最大数的位数,所以最后一次可以判断下是否满足条件然后元素逆序输出根据题目分析可得:楼梯数f[n] = f[n-1] + f[n-2],可以采用二位数组f[n][k

2020-12-16 21:55:36 211

原创 十进制转二进制

十进制转二进制,这是两者之间的互相转换,所以没有定义,原因就是两者互相转化。怎么做?(步骤)理解基本机制转换思想---及时短除法。如将数字125不断的除以2,保留余数,直到商为0。然后从下到上读数,就是对应的二进制字符串 二进制都是需要使用字符串进行保存的,但是可以先直接输入数字然后将之转换成字符串具体的操作方式定义整数,然后%2就是我们需要的余数,然后数字/2 得到对应的商。因为...

2020-04-25 10:16:40 850

原创 二进制内容

采用小黄鸭式的方式学习二进制二进制是什么二进制是计算机技术中心采用的一种记数方法。二进制的数据是用0和1来表示。(参照比对十进制0-9)。基数是2,同时也是称之为逢二进一。为什么要采用二进制呢再计算机中,计算机内部硬件数据的交流方式是采用的0和1这两个数字,其实表示两种状态。类似电灯的开关啊,采用的两种对立的物理状态表示。十分好用进制转换虽然二进制有不少的优点,但是我们生活当中最常...

2020-04-25 09:58:11 355

原创 关于cin的使用与讲解

本内容是借鉴其它博客内容所写的总结–参考FEYNMAN TECHNIQUE学习方法借鉴博客讲解cin内容传送点.最最原本的博客来源地址,很详细cin定义(是什么) 1、cin是标准输入输出流的对象(也就是类的对象)-就是istream类的对象 2、cout如上,只不过对象是来源于ostream 3、cerr是标准错误输出流对象,---ostream类cin的作用是什么1. 主要是...

2020-04-24 15:54:18 3274 1

原创 字符数组的解释与使用

定义字符数组,第一个就是数组,所以需要有大小,符号【】第二个就是,存放字符的数组,由于存放的是字符表示字符的前缀char单个字符的表示方法 ‘a’,单引号初始化方式单个赋值 char s[3] = {‘a’,‘b’,‘c’};//无法输出,系统无法读取\0char s[3]=“ab”;char s[]=“abcedfg” 定义初始化,一起的,单个的需要指定大小需要...

2020-04-18 18:35:14 1475

原创 弗曼学习方法-终极快速学习方法

FEYNMAN TECHNIQUE学习方法

2020-04-18 09:55:02 866

原创 c++题目谁考了第k名

谁考了第k名用的是类保存数据#include <iostream>#include <cstdio>using namespace std;class Q{ public: long order; double grade;};int main(){ Q arr[100]; Q tmp; int m , k; cin >&...

2019-12-28 18:04:12 2303 1

原创 求数字的个数方式

求1-n当中x出现的次数问题试计算在区间 11 到 nn的所有整数中,数字x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 11 出现了 44 次。关键点如果之后两位数,比较简单其中需要考虑到有三位数、四位数、甚至是多位数的情况 就有点复杂解决...

2019-10-05 16:18:13 1469

原创 口口 * 口 =口 口*口=口口口

口口 * 口 =口 口*口=口口口#include<iostream>using namespace std;bool exchange(int x,int b,int c,int y,int z){ int a[9]={0}; a[0]=x/10; a[1]=x%10; a[2]=b%10; a[3]=c/10; a[4]=c%10; a[5]=y%10; a...

2019-09-30 18:30:07 673

原创 洛谷三连接

将1,2, \cdots ,91,2,⋯,9共99个数分成33组,分别组成33个三位数,且使这33个三位数构成1:2:31:2:3的比例,试求出所有满足条件的33个三位数。思路:1、列出三个循环2、一次判断个数是否相等#include<iostream>using namespace std;bool exchange(int x,int b,int c){ int a...

2019-09-30 16:01:04 167

原创 后缀表达式的计算方式

本后缀表达式只能计算小于10的计算,同事不能包含负数关键知识点:1、后缀表达式使用的是字符串2、借助的工具是栈stack3、计算规则:数字村栈,符号从栈取两数,后数在前。编辑器:Devc++代码如下:#include<iostream>#include<stack>using namespace std;//后缀表达式计算结果 分为两类 double...

2019-09-13 23:09:51 1602

原创 c++十进制转二进制的方法

十进制转二进制的方法转化方式原理不断除以2 ,得到位数, 从下往上读数,步骤1、先得到每个余数,放进一个地方,如vector容器2、再取出得数,逆着取数代码编写#include<iostream>#include<vector>using namespace std;int main(){ vector<int> v; int n; ...

2019-09-04 21:20:26 3427

原创 用c++计算二进制转十进制的方法

二级制的计算方式11011(2)=1* 24+1* 23+0* 22+1* 21+1* 20我们会得到这样的规律 下标+权值=长度-1代码编写#include<iostream>#include<cmath>using namespace std;int main(){ string s; cin>>s; int len=s.lengt...

2019-09-04 21:06:39 12807 2

原创 vector容器的简单介绍与使用

C++中Vector容器的使用方式了解Vector容器C++中容器使用方式读取容器的内容直接改变容器的大小了解Vector容器Vector容器就是能够存储很多数据,但是必须是相同类型的。类似数组,但是按需分配。容器的构造方式1、需要添加头文件2、vector <类型> 容器名C++中容器使用方式#include<iostream>#include<ve...

2019-09-04 20:49:41 467

原创 BCD码中的8421码 2421码 5421码和余3码的简单使用

BCD码二进制编码的十进制数(Binary Code Decimal,BCD)。通常采用4位二进制数来表示一位十进制数中的0~9这十个数。这种编码可以使二进制和十进制之间的转换得以快速进行。但是二进制数可以组合出16种代码,故必有6种为冗余状态。将十进制的数转换成bcd码必须要先装换成二进制。8421码它是一种有权码,假设数值为b3b2b1b0,则权值从高到底为8、4、2、1。如8→100...

2019-03-05 15:34:55 18565

空空如也

空空如也

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

TA关注的人

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