自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++Linux高级编程 -- 应用开发重点

并不是全部的库函数在调用失败时都会设置errno的值,以man手册为准(一般来说,不属于系统调用的函数不会设置errno,属于系统调用的函数才会设置errno)。创建的是子进程,子进程是父进程的副本,父进程和子进程都从调用fork()之后的代码开始执行(fork之后的代码父进程和子进程都会执行)在多进程中,每个进程的地址空间是独立的,不共享的。make是一个强大的实用工具,用于管理的编译和链接。,让新创建进程的ID不同于最近终止的进程所使用的ID,这样防止了新进程被误认为是使用同一ID的某个已终止的进程。

2024-04-16 18:13:57 400

原创 Java前置一些知识

傻瓜式的点下一步就行,注意:安装目录不要有空格、中文。不同的操作系统有对应的相应的JVM虚拟机。导入模块(有一点点复杂)oralce官网下载。javac 编译工具。

2024-04-08 16:26:59 218

原创 24考研-东南大学916经验贴

政治可以作为学习学累的一个放松的学科,看看视频了解一下知识点,切勿把大把精力放到政治上面,然后坚定跟着肖四肖八走,搭配徐涛 腿姐等等一些模拟卷九月中旬开始看的徐涛强化班搭配肖老1000题。课程就看了马原和史纲一部分,一开始还在书上记笔记,后来不记了感觉学了也就是忘,1000题也就做完了马原。

2024-04-07 22:00:51 2240

原创 代码随想录 -- 回溯算法

回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。

2024-03-16 21:45:24 999

原创 代码随想录 -- 二叉树(未完待续)

因为lz考研复试可能优先回溯 动态规划 双指针,所以lz先进行这三样了!!!

2024-03-12 00:55:10 951

原创 代码随想录 -- 栈和队列

解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。输入: [“10”, “6”, “9”, “3”, “+”, “-11”, " * ", “/”, " * ", “17”, “+”, “5”, “+”]有效的运算符包括 + , - , * , /。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。

2024-03-09 01:34:36 1015

原创 代码随想录 -- 双指针法

示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。元素的顺序可以改变。输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]输入:[“h”,“e”,“l”,“l”,“o”]

2024-03-07 00:09:13 552

原创 代码随想录 -- 字符串

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。

2024-02-21 19:30:55 1001

原创 代码随想录 -- 哈希表

满足要求的四元组集合为: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]如果 可以变为 1,那么这个数就是快乐数。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。依然还是在数组中找到 abc 使得a + b +c =0,我们这里相当于 a = nums[i],b = nums[left],c = nums[right]。

2024-02-21 08:30:00 826

原创 代码随想录 --链表

操作链表的时候尽量定义一个虚拟的头节点,这样方便处理删除实际头结点的逻辑。

2024-02-18 13:12:22 734

原创 C++--Linux基础使用

如果是目录,表示它的第一级子目录数,空目录为2(每一个目录都有一个指向它本身的子目录”.”和指向它上级目录的子目录”…c是字符设备文件(终端、打印机);s 是 Super User 的意思,是 Superuser Binaries(超级用户的二进制文件)的缩写,/sbin 存放了。4)目录和文件的相对路径是从当前目录算起,如果当前目录是/usr,include/stdio.h 等同于/usr/i。Linux 的文件系统像一棵树(Windows 也一样),树干是/(根)目录,树枝是子目录,树枝后面还。

2024-02-17 22:50:36 1692

原创 c++ 可调用对象的绑定器和包装器

在消息队列和网络库的框架中,当接收到消息(报文)时,回调用户自定义的函数对象,把消息(报文)参数传给它,由它决定如何处理。(先查找对象的函数表,再次通过该函数表中的地址找到真正的执行地址),这样的话,CPU会跳转两次,而普通函数只跳转一次。模板函数是一个通用的函数适配器(绑定器),它用一个可调用对象及其参数,生成一个新的可调用对象,以适应模板。普通函数、类的静态成员函数、仿函数、lambda 函数、类的成员函数、可被转换为函数的类的对象,统称。普通函数类型可以声明函数、定义函数指针和函数引用,但是,

2024-02-17 00:26:16 606

原创 代码随想录 -- 数组

示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2, 函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。解释:平方后,数组变为 [16,1,0,9,100],排序后,数组变为 [0,1,9,16,100]元素的顺序可以改变。输入:s = 7, nums = [2,3,1,2,4,3]

2024-02-14 11:29:04 998

原创 C++ Primer 第 5 版 第 6 章习题答案

(a)应该放在头文件中。上述声明的含义是:func() 表示调用 func 函数无须任何实参,(&func()) 表示函数的返回结果是一个引用,(&func())[10] 表示引用的对象是一个维度为 10 的数组,string (&func())[10] 表示数组的元素是 string 对象。(c)是非法的,两个函数的区别是它们的指针类型的形参本身是否是常量,属于顶层 const,根据本节介绍的匹配规则可知,向实参添加顶层 const 或者从实参中删除顶层 const 属于精确匹配,无法区分两个函数。

2024-02-13 17:22:24 881

原创 C++深入指针和数组

一定要。

2024-02-06 11:38:35 152

原创 C++ Primer 第 5 版 第 5 章习题答案

块不需要以分号结束。(b)if 语句的循环体只能是一条语句,本题从代码的缩进格式上来说需要做两件事,一是修改 minval 的值,二是重置 occurs 的值,所以必须把这两条语句放在一个块里。(c)ival 是定义在 if 语句中的变量,其作用域仅限于第一个 if 语句,要想在第二个 if 语句中也使用它,就必须把它定义在两个 if 语句的外部。(d)程序的原意是判断 ival 的值是否是 0,原题使用赋值运算符的结果是把 0 赋给了 ival,然后检验 ival 的值,这样使得条件永远不会满足。

2024-02-04 12:12:44 1146

原创 C++ Primer 第 5 版 第 3 章习题答案

具体来说,数组的维度在定义时已经确定,如果我们想更改数组的长度,只能创建一个更大的新数组,然后把原数组的所有元素复制到新数组中去。如果希望在最终的字符串中保留输入时的空白符,应该使用 getline 函数代替原来的 >> 运算符,getline 从给定的输入流中读取数据,直到遇到换行符为止,此时换行符也被读取进来,但是并不存储在最后的字符串中。数组与 vector 的最大不同是,数组的大小固定不变,不能随意向数组中增加额外的元素,虽然在某些情境下运行时性能较好,但是与 vector 相比损失了灵活性。

2024-02-02 09:41:20 1015

原创 C++练习题《基本练习》

可以选择二进制或者十进制 默认为十进制。返回子串在目标串中第一次出现的位置。目标字符:aaxxyzyzooo。查找字符位置,返回的是地址。

2024-01-30 20:41:43 869

原创 C++11

多个构造函数之间可能会有重复的代码。C++11 标准为了解决 const 关键字的双重语义问题,保留了 const 表示“只读”的语义,而将“常量”的语义划分给了新添加的 constexpr 关键字。但是,常量左值(const T&)引用既可以绑定非常量左值、常量左值、右值,而且在绑定右值的时候,常量左值引用还可以像右值引用一样将右值的生命期延长,缺点只读。在 C++11 中,赋予了 auto 全新的含义,不再用于修饰的变量,而是作为一个类型指示符,指示编译器在编译时推导 auto 声明的变量的数据类型。

2024-01-25 00:41:05 870

原创 C++智能指针

weak ptr 是为了配合 shared ptr 而引入的,它指向一个由 shared ptr 管理的资源但不影响资源的生命周期。也就是说,将一个weak ptr 绑定到一个shared ptr 不会改变 shared ptr 的引用计数。不论是否有 weak ptr 指向,如果最后一个指向资源的 shared ptr 被销毁,资源就会被释放。shared ptr 内部维护了一个共享的引用计数器,多个 shared ptr 可以指向同一个资源。当新的shared_ptr与对象关联时,引用计数器+1。

2024-01-22 16:58:49 786

原创 C++ STL初步

双端数组(双端队列),可以对头端进行插入删除操作deque和vector区别vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度比vector快vector访问元素时的速度会比deque访问的速度快,这和两者内部实现有关deque内部实现原理一个连续的空间存储着地址,地址指向一个个的数组 所以说有的地方内存地址是不连续的 访问元素速度慢deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放这真实的数据。

2024-01-22 11:42:54 825

原创 C++编译和链接

define 宏名 宏内容(x):(y))编译的时候,编译器把程序中的宏名用宏内容替换,称为宏展开宏可以只有宏名,没有宏内容__FILE____LINE____DATE____TIME__

2024-01-21 00:23:37 1088

原创 C++小实践--自定义数组

案例描述:实现一个通用的数组类,要求如下。

2024-01-15 11:57:13 459

原创 C++模板

建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表。总结:如果存在函数模板了,最好就不要提高同名的普通函数了,否则容易出现二义性。建立一个通用类,类中的成员 数据类型可以不具体指定,使用一个。在上述代码中,如果传入的a和b是数组,那么无法实现了。实际上,学习模板并不是为了使用模板,而是为了STL中。类内实现简单,如果没有特殊需求使用类内实现就可以了。C++为了解决这种问题,提供模板的重载,可以对。模板就是建立一个通用的模具,大大提高复用性。:类模板中的成员函数创建时期是在。

2024-01-15 00:59:44 904

原创 C++文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过C++对文件操作需要包含头文件文件类型分为两种:1、文本文件:文件以文本的ASCII码形式存储在计算机2、二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂操作文件的三大类:1、ofstream 写 output2、ifstream 读 input3、fstream 读写。

2024-01-14 13:23:01 537

原创 C++异常

继承 exception 类//自定义异常public:if (b)return a/b;throw l;try {}catch (Div0 &d){//明确捕获一个 const char* 的异常。

2024-01-14 11:36:49 411

原创 C++ 多态

对已有运算符重新进行定义,赋予其另外一种功能,以适应不同的数据类型运算符重载不能改变本来寓意,不能改变基础类型寓意。运算符重载只是一种语法上的方便,也就是它只是另一种函数调用的方式在c++中,可以定义一个处理类的新运算符。这种定义很像一个普通的函数定义,只是函数的名字由关键字operator及其紧跟的运算符组成。差别仅此而已。它像任何其他函数一样也是一个函数,当编译器遇到适当的模就会调用这个函数。可以重载的运算符不可以重载的运算符成员访问运算符(成员指针访问运算符(->域运算符(长度运算符(

2024-01-13 17:36:06 811

原创 C++ 继承

继承是面向对象程序设计使代码可以复用的重要的手段,允许程序员在保持原有的特性基础上进行扩展,增加新功能。一个B类继承于A类,或者说 从类A派生类B  A是基类(父类),B是派生类(子类)派生类成员包含两大部分从父类继承来的 自身固有的继承来的表现为共性,新增的成员体现个性class 派生类名字 : 继承方式 基类名 {// 派生类新增的数据成员和成员函数 } /*继承方式:publicprotectedprivate*/实例public:_name=name;

2024-01-04 15:00:37 880

原创 c++ 类和对象

属性:定义行为:函数/方法访问控制符:成员变量成员函数 }访问控制符有 public private protected```cpppublic:int age;类的首字母一般大写 大驼峰写法访问控制符后续细说与类名相同的特殊成员函数 即为构造函数在定义的时候可以有参数,也可以没有参数没有任何返回类型的声明构造函数要在外部可以访问到 publicclass Dog{public:/*

2024-01-04 02:59:19 999

原创 计算机组成原理(自用)

cpu和内存条通过主板上的电路通信,这个电路至少包含三种信息:1、内存编号信息 (地址线) 2、数据信息 (数据线) 3、读或写(控制信息 控制线)键盘按下A 首先是存储到键盘的内存,然后通过连到主板的线发送给端口,然后CPU通过主板上的三根线来读写控制数据。计算机由很多部件组成,能够正确的组织一起运行指令,告诉计算机按照我们的意愿进行计算。芯片 CPU也是一块芯片,都有存储数据的地方,鼠标和键盘都有芯片存储数据。存储:从寄存器复制一个字节/字到主存的某个位置,覆盖之前的内容。

2024-01-03 03:48:33 797

原创 c++基础(包含C的知识)

同一个函数名定义不同的函数函数名和不同的参数搭配时函数的含义不同。

2024-01-02 14:24:07 1260

原创 c++简单程序设置

定义一个变量与某一表达式的类型相同,但并不想用该表达式初始化这个变量,这时我们需要decltype变量。数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。利用while 输入一个整数,将各位数字反转后输出。cout用来处理标准输出,即屏幕输出。bool true 或者 false。cin用来处理标准输入,即键盘输入。流在使用前要被建立,使用后要被删除。常量表达式:值不能改变的表达式,

2023-12-30 19:30:56 845

原创 C++ --绪论

计算机组成:输入设备、内存储器、外存储器、CPU、输出设备计算机软件:应用软件、系统软件(Windows、Linux)、中间件软件:程序+文档。

2023-12-28 17:11:30 948

原创 ctfshow--RCE极限挑战

使用A的话构造GET肯定是无法小于105 那么可以尝试构造POST。phpinfo安装了一个扩展gettext,该扩展支持函数。,我们可以利用反引号执行命令 echo输出。我们跑一下 看看哪些字符没有被过滤。要保证构造payload长度小于。限制字符的自增 对于我来说较难。fuzz测试哪些字符没有被过滤。另外更有大佬的payload。fuzz测试什么没有被过滤。限制传入的参数长度小于等于。fuzz测试,可用字符。构造的payload。

2022-11-20 21:40:08 1590 1

原创 2022NUSTCTF--web

# ezProtocol> web基础```POST / HTTP/1.1Host: 43.143.7.97:28520Pragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/53

2022-11-17 14:26:29 1262

原创 [第五空间 2021]yet_another_mysql_injection

打开题目 查看源码 发现可用信息。,试试登录,返回flag。

2022-11-10 18:46:14 1392 3

原创 [NSSRound#1 Basic]basic_check

PUT: 把消息本体中的消息发送到一个URL,跟POST类似,但不常用。简单地说:通常用于向服务器发送请求,如果URI不存在,则要求服务器根据。,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。并且创建的文件的内容就是在post请求参数的位置。2、了解到了nikto网页服务器扫描器的使用。1、熟悉了PUT请求方式。应该是可以PUT上传文件。尝试写入,果然是存在的。

2022-11-09 20:02:10 742

原创 2022UUCTF-web

我们先输入手机号和验证码试试,发现无论请求多少次 hint永远是895547922,结合mt_srand和mt_rand函数 当设置的种子确定(此处的种子时输入的手机号)时,每次的mt_rand都是固定的 我们可以猜测hint就是mt_rand的第一次,而目的验证码就是mt_rand的第二次。而且我们笃定是有上传的网页的,限制了文件类型 我们想要上传的是so,但是LD_PRELOAD也能解析jpg后缀 所以修改后缀上传就可以。sub的值是当前时间的最后一位,也就是保证当前的时间为xxxxxxxx1即可。

2022-11-03 16:08:26 1767

原创 2022NISCTF--web

打开题目,显示的是尝试输入, 发现输入flag有东西读取文件访问下一个网站读取文件 不能以file开头 直接伪协议,base64解码。

2022-10-30 19:58:24 846

原创 2022HNCTF-web

应该和http协议有关 想要什么 肯定flag说我们不是admin 看看cookie修改cookie继续修改 x-forwarded-for[Week1]2048分析题目描述你能达到20000分吗?应该是要求我们玩到20000分F12查看脚本直接输入在控制台输入[Week1]easy_html分析输入框限制了11位 f12修改html属性 或者直接post参数[Week1]Interesting_include分析题目描述:web手要懂得搜索 应该要借助浏览器一眼伪协议base64解码[

2022-10-30 19:55:52 3038 12

空空如也

空空如也

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

TA关注的人

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