自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 VSCODE解决问题一则

Vscode远程

2022-06-19 14:17:54 473 1

转载 利用SHA-1算法和RSA秘钥进行签名验签(转载)

背景介绍1、SHA安全散列算法SHA (Secure Hash Algorithm)是美国国家标准和技术局发布的国家标准FIPS PUB 180-1,一般称为SHA-1。其对长度不超过264二进制位的消息产生160位的消息摘要输出,按512比特块处理其输入。SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预

2022-03-15 16:14:15 1389

翻译 利用openssl进行RSA加密解密

openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。首先介绍下命令台下openssl工具的简单使用:生成一个密钥:openssl genrsa -out test.key 1024这里-out指定生成文件的。需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密。后面的1024是生成密钥的长度。openssl可以将这个文件中的

2022-03-15 15:50:27 1501

原创 文件操作/16进制/10进制/8进制

将16进制(2个字符表达的)转成十进制整数#include <stdio.h>/*将16进制(2个字符表达的)转成十进制整数*///需要用到将大写字母转化为小写字母int tolower(int c){ if(c >= 'A' && c <= 'Z') { c = c + 'a' - 'A'; } return c;}int htoi(char *s){ int i; i

2022-03-15 11:16:06 951

原创 文件与内存内容,数据格式相关整理

存入读出-底层ascll码和输入输出格式关系int main(){ int i = 33; /* (gdb) p/x i $1 = 0x21 */ char c = '!'; /* (gdb) p/x c $1 = 0x21 */ printf("%d\n", i);// 33 printf("%c\n", i);// ! return 0;}...

2022-03-14 16:21:48 297

原创 sizeof/strlen/ascll

sizeof-获取某个数据类型所占用空间的字节数sizeof操作符的结果类型是size_t,是C的一种单目操作符,类似++,–等,并不是函数。sizeof可以用于数据类型、变量:如sizeof(int),sizeof (var_name)sizeof的结果(常用)若操作数具有类型char、unsigned char或signed char,其结果等于1int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、f

2022-03-14 15:36:53 1004

翻译 unorderd_map和unorderd_set的简单实现代码

main.cpp#include<iostream>#include"HashBucket.h"#include"Unordered_map.h"#include"Unordered_set.h"#include<string>using namespace std;void TestUnorderedMAP(){ Unordered_map<string, string> m; // 构造键值对的两种方式:pair结构体 make_

2021-11-05 18:13:49 84

转载 std和stl的关系20211019

【前言】在写程序时,虽然一直这么用,有点疑惑为甚么引入了头文件.h还要在加上using namespace std?例如:#include<iostream>using namespace std;//他的作用?cout不应该在头文件里面定义的函数吗?int main(0{ cout<<"你好"; return 0;}下面就介绍一下,为什么在引用了iostream头文件的情况下,想使用cout,还要加上std命名空间。一.std和stl的关系st

2021-10-19 18:12:40 238

原创 第十二章 异常处理2021-10-04

//带析构语义的类c++异常处理 12-2#include <iostream>#include <string>using namespace std;class MyException{public: MyException(const string &message):message(message){} ~MyException(){} const string &getMessage() const{return messa

2021-10-05 10:39:22 59

转载 2021-09-29转载内存分区

一、数据结构中的栈和堆虽说我们经常把堆栈放在一起称呼,但是不可否认的是,堆栈实际上是两种数据结构:堆和栈。堆和栈都是一种数据项按序排列的数据结构。栈:就像装数据的桶或箱子,它是一种具有后进先出性质的数据结构。堆:一种经过排序的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。由于堆的这个特性,常用来实现优先队列,堆的存取是随意,这就如同我们在图书馆的书架上取书,虽然书的摆放是有顺序的,但是我们想取任意一本时不必

2021-09-29 10:02:16 59

原创 类模板学习20210921

//类模板示例#include <iostream>using namespace std;struct Student { int id; //学号 float gpa; //平均分};template <class T>class Store{ //类模板private: T item; //item用于存放任意类型的数据 bool haveValue; //haveValue标记item是否已.

2021-09-22 14:25:35 63

转载 ssh命令详解

为了让两个Linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。模型分析假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;要达到的目的:A机器ssh登录B机器无需输入密码;加密方式选 rsa|dsa均可以,默认dsassh-keygen -t rsa #使用rsa加密二、具体操作流程单向登陆的操作过程(能满足上边的目的):1、登录A机器2、ssh-keygen -t [rsa|dsa],将会生成密钥文

2021-09-18 09:25:31 14724

原创 学堂在线c++补充记忆20200830

关于两个比较容易混淆的知识点一个函数参数为指向基类对象的指针#include <iostream>using namespace std;class Base1{ //基类Base1定义public: void display() const{ cout << "Base1::display" << endl; }};class Base2: public Base1{ //公有派生类Bas

2021-08-30 14:20:17 96

原创 mac sublime中文乱码问题解决

网上下载的代码用sublime打开,中文注释全是乱码。解决办法:解决步骤1解决步骤2

2021-08-22 11:34:38 657

原创 第七章(中)派生类

派生类的构造和析构派生类的构造函数默认情况下,基类的构造函数不被继承,派生类需要自己定义自己的构造函数(还需要传参数给基类去初始化)c++11规定:可以用using语句继承基类的构造函数。(适用于派生类很少或者没有新增成员)但是只能初始化从基类继承的成员。using B::B;如果派生类需要对自己新增的成员制定参数初始化,最好就自己写构造函数,不继承基类的构造函数。所以:那些从基类继承过来的成员,到底怎么进行初始化呢?最后一句话是关键。单继承:#include<iostream

2021-05-05 20:24:04 151

原创 数据结构第七章(1-4)

7-1查找的基本概念查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找查找表(查找结构):用于查找的数据集合称为查找表,它有统一类型的数据元素(或者记录)组成,查找表可以是任意结构:树形,线型,图状结构都可关键字:数据元素中唯一标识该元素的某个数据项的值。对查找表的两个基本操作1.查找符合条件的数据元素2.插入,删除某个数据元素查找算法的评价指标查找长度–需要对比关键字的次数平均查找长度(ASL-Avera Search Length )举例,二叉排序树中,...

2021-04-09 15:21:01 68

原创 数据结构第五章剩余内容补充

5-14 二叉树的应用-二叉排序树BST二叉排序树的定义/二叉查找树定义:一棵二叉树或者是空二叉树,左子树节点数组<根节点的<右节点的1.如果用中序遍历进行遍历这样的二叉树,可以得到一个递增的有序序列2.二叉排序树可以用于元素的有序组织,搜索(即查找)查找操作查找操作,要能很准确地叙述(面试中可能会让说明)若树非空,目标值与根节点的值进行比较若相等,则查找成功若小于根节点,则在左子树上查找,否则在右子树上查找查找成功,返回节点指针;查找失败,返回NULL//二叉排序树节点

2021-04-08 22:59:50 65

原创 20210404面试问题总结

结构体和共用体的区别结构体不再展开说明,具体对昨天面试问题中题目涉及知识点进行补充。共用体union 叫共用体,又叫联合、联合体。“联合体”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合体”内能够定义多种不同的数据类型。一个被说明为该“联合体”类型的变量中。同意装入该“联合体”所定义的不论什么一种数据。这些数据共享同一段内存,以达到节省空间的目的。关于大端小端大端:高位字节放在地地址小端:低位字节放在高地址题目:题目1链接...

2021-04-05 23:34:45 61

原创 函数地址类型

项目知识点补充:1.函数的名字就是函数的地址,函数的地址有两种表现形式:fun 或者&fun2.函数地址的类型:***函数声明去掉函数名字***就是函数地址的类型(即由函数的返回值类型和函数的参数及个数决定)为什么要知道函数地址的类型?定义一个函数地址类型的指针来指向函数,然后通过这个指针变量去调用这个函数。举例://函数地址#include <iostream>#include <cstdio>//函数地址的类型:int (int a)int fun

2021-03-10 14:31:06 1567

原创 c项目过程中知识点补充

关于指针1.指针作用范围由指针变量类型决定2.潜意识中没有意识到指针自己也是占有地址的(这个地址叫做二级指针),注意关于二级指针int a = 12;int *p = &a;//*p和**p的类型不同,如何判断?//证明方法,使用IDE进行编译,查看是否报错?...

2021-03-10 12:09:21 34

原创 关于Mac合盖影响网速的解决办法

电脑是Mac pro15款,显示器lg27ul550,4k,60hz,每次合盖使用显示器都发现Mac网速巨慢,开盖后好很多。然后又不想Mac亮着本屏幕,不好用,所以想实际开盖实现Mac软件合盖的功能,搜了一圈:这个答案和评论区帮助了我,首先我是10.15.7 (19H114),关闭电脑的sip后终端输入:sudo nvram boot-args="niog=1"然后重启电脑,拔掉外接显示器,关盖,插上外接显示器,使用外接键盘唤醒,然后开盖,内屏是熄灭状态。取消这个命令的代码,sudo nvra

2021-03-08 10:48:27 1703

翻译 C/C++直通企业级开发教程

程序羊的视频教程C/C++被称为造轮子的语言–性能好、粒度细,常用于后端开发,也就是服务端开发,偏后端。检验这两种语言学得好不好的标准:指针和内存管理1. 基础语言的学习建议:一定要一股作气看完,不要一天一两页,很容易泄气学了这部分顶多可以做一些:俄罗斯方块,贪吃蛇这种小例子练练手。2.基础四大件数据结构和算法,计算机网络,操作系统,设计模式这几天需要完善补充学习的:数据结构和算法:最重要队列,哈希基本的算法:动态规划弄完之后高强度的刷LeetCode的题目,刷题很重要!!!找

2021-03-06 21:51:09 621

原创 关于算法笔记第八章的总结(DFS )

DFSDFS可以用栈来实现,但是用栈实现较为麻烦,所以采用递归来进行实现:1)递归式就是岔道口2)递归边界就是死胡同讲解例子,理解DFS思想:有n件物品,每件物品的重量为w[i],价值为c[i],现在要选出若干件放入容量为V的背包中,为使背包价值和最大,求最大价值( 1 <= n <= 20)分析:1.“岔路口” 和 “死胡同”分别是什么?每件物品都有选或者不选两种选择–岔路口一旦选择的物品超过了V,就到达死胡同2.DFS函数的参数怎么写a.需要记录当前要处理物品的编号;

2021-02-19 10:29:01 114

原创 王道机试 第九章 搜索

第九章 搜索如果求最低话费的路径,则四要素转变为搜索问题:起始状态经过一系列的状态转移抵达目标状态Search Trees–宽度优先搜索(BFS)& 深度优先搜索(DFS)宽度优先搜索(BFS)例题王道9.1:分析:状态空间(位置n,时间t)状态转移 (n-1.t+1),(n+1,t+1),(n*2,t+1)起始状态(N,0)目标状态(K ,lowest time)分析:使用宽度优先搜索,每一层是相同的时间 并且为防止访问同样的点浪费程序时间:可以设置一个visit数

2021-02-18 17:10:33 76

原创 王道机试第7章 贪心策略

贪心策略:总是做出当前最好的策略1.问题分解为多个子问题2.子问题求局部最优解3.局部最优解组合成原问题的解【不能保证全局最优解】简单贪心区间贪心

2021-02-06 21:27:46 125

原创 王道机试第六章04

质因数如何获取一个数的质因数:短除法这题难点:此题题目要求的是e9,机试要求1000ms内,如果采用时间复杂度为O(n),能处理的数字为e7~e8.但此题只需计算到根号x即可const int MAXN = sqrt(1e 9); //筛法需要筛选的数注意,c++14才支持此类写法,如果低版本的c需要写成常数4e4vector<int> prime; //保存质数bool isPrime[MAXN]; //标记数组void Initial() { fo

2021-02-01 19:43:08 47

原创 王道机试第六章数学问题03

质数和质因子质数(Prime Number)== 素数:只能被它自身和1整除的正整数计算一个数是否是质数:1.朴素算法:O(n)2. 可以只枚举到根号n即可,原因:例题:代码:1.注意如果使用long long,则输入格式“%lld”//自己写:#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(){ int n;

2021-02-01 13:42:20 103

原创 王道机试第六章数学问题02

最大公约树GCD(Greatest Common Divisor)有朴素的算法,算法时间复杂度为O(n)有聪明的算法:辗转相除法算法正确性验证:例题最小公倍数

2021-01-31 10:21:23 114

原创 王道机试第六章 数学问题01

进制转换:10-n例题:题目m-10m-n

2021-01-30 22:36:39 88

原创 0120王道机试第五章 【线性数据结构】

线性数据结构向量:长度可变的数组向量发生溢出的措施1.产生新向量,且尺寸翻倍2.将旧向量的值进行迁移3.删除旧向量向量的使用:vector的构造:#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <vector>using namespace std;//老师自己写的print函数void print

2021-01-29 16:01:24 47

原创 数据结构第四章

4.1.1串的定义和基本操作字符串的操作、比较大小(见PPT)4.1.2 串的存储结构串其实是一种特殊的线性表。串的顺序存储静态数组实现(定长顺序存储)#define MaxLen 255 //预定义最大串长为255typedef struct{ char ch[MaxLen]; //每个分量存储一个字符 int length; //串的实际长度}SString;基本操作的实现求字串:用sub返回串S的第pos个字符起长度为len的子串//求子串bool SubS

2021-01-28 16:50:45 141

原创 数据结构王道第五章 树与二叉树(上)

5.1.1树的定义和基本术语

2021-01-27 10:19:57 343

原创 数据结构第三章(下)

3.3.2栈在表达式求值中运用(理论)后缀表达式的手算计算:从左到右扫描,每遇到一个运算符就让前面最近的两个操作数进行计算,合体为一个操作数。机算:1.左到右扫描下一个元素,知道处理完所有元素2.若扫描到操作数:入栈,并执行1;否则33.(扫描到操作符)则弹出两个栈顶元素,执行相应操作,结果入栈,回到1代码举例:结果为5总结3.3.2栈在表达式求值中运用(实践)1.中缀表达式转后缀表达式2.中缀表达式的计算见ppt3.3.3 栈在递归中的运用见ppt3.3.4 队列的应

2021-01-24 22:31:16 50

原创 数据结构王道第三章(上)

3.1.1 栈的基本概念栈:只允许在一端进行插入或者删除操作的线性表3.1.2 栈的顺序存储实现//顺序栈的定义#define MaxSize 10 //定义栈中元素的最大个数typedef struct{ Elemtype data[MaxSize]; //静态数组存放栈中元素 int top; //栈顶指针(存放栈顶元素的数组下标)}SqStack;void testStack(){ SqStack S; //声明一个顺序栈(分配空间) //。。。}

2021-01-24 11:33:57 75

原创 数据结构笔记第二章下

2.3.2_2 单链表的查找2.3.2_3 单链表的建立尾插法头插法养成好习惯:在初始化单链表时,都要把头指针指向NULL。

2021-01-22 15:48:06 72

原创 数据结构笔记第二章上

数据结构第二章2.1 线性表的定义和基本操作2.2.1顺序表的定义2.2.2_1顺序表的插入删除2.2.2_2顺序表的查找2.1 线性表的定义和基本操作2.2.1顺序表的定义顺序表的实现-动态分配#define InitSize 10//默认的最大长度typedef struct { int *data;//指示动态分配数组的指针 int MaxSize;//顺序表的最大容量 int length;//顺序表的当前长度}SeqList;void InitList(SeqList

2021-01-21 09:38:16 56

原创 0119王道机试-查找

今日小提醒,以后都有C++的头文件:#include <iostream>#include <c.stdio>using namespace std;查找线性查找O(n)略二分查找O(logn)分为:自定义注意查找前应该保证数组有序#include <algorithm>sort(arr,arr+n);//arr为全局变量bool BinarySearch(int n,int target){ int left = 0; int

2021-01-19 17:41:06 95 1

转载 C语言中传值和C++的传引用

C语言中传值和C++的传引用在C语言中,传址其实也时传值的一种,首先地址其实也时可以看做是一个值来进行传递的。在C++中有一种说法叫传引用,就是&变量名。比如:/* *传值int a = 3;void fun(int *a){ *a = 4;}传址:传递的还是值,只不过这个值是一个地址fun(&a)传引用int b = 3;void fun(int &b){ b = 4;}fun(b);*/...

2021-01-18 22:33:48 145

原创 王道机试课易错点0116

题目1:题目2:https://www.nowcoder.com/search?query=整数奇偶排序&type=all0116排序练习题目:输入10个数字,先输出奇数后输出偶数,并且均按从小到大的顺序排#include <iostream>#include <cstdio>#include <algorithm>//用sort函数注意加using namespace std;int arr[10];bool Compare(int x,

2021-01-17 11:26:38 115 1

boost_1_74_0-msvc-14.0-64.exe

boost_1_74_0-msvc-14.0-64.exe

2021-12-30

算法笔记+上级训练实战.zip

算法笔记+上级训练实战PDF

2021-03-10

空空如也

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

TA关注的人

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