自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (1)
  • 收藏
  • 关注

原创 pwn基础之堆基础知识超详解

Top chunk,在第一次malloc的时候,glibc就会将堆切成两块chunk,第一块chunk就是分配出去的chunk,剩下的空间视为top chunk,之后要是分配空间不足时将会由top chunk分配出去,它的size为表示top chunk还剩多少空间。释放一个fast chunk时,首先检查它的大小以及对应fastbin此时的第一个chunk的大小是否合法,随后它会被插入到对应fastbin的链表头,此时其fd指向上一个被free的chunk。(关于top chunk的位置)!

2024-06-30 18:17:50 799

原创 C++指针

指针变量的值是一个内存单元的地址,那么这个地址不仅可以是变量的地址,也可以是其它数据结构的地址。虽然a和&a的值相同,但是所表达的含义完全不同:a表示取数组第一个元素的地址,而&a表示取数组的首地址。与C一样,C++中,空格用来占位,并没有实际的内容,对于编译器,除由" "包围起来的字符串中的空格不会被忽略,其它的空格会被忽略。在计算机科学中,指针(Pointer),是编程语言中的一类数据类型及其对象或变量,用来表示或存储一个存储器地址,这个地址的值直接指向(points to)存在该地址的对象的值。

2023-12-21 22:47:43 832

原创 C++类的继承

(2)在羊和驼继承时,在继承方式前加 virtual ,变为虚继承,则公共基类动物则称为虚基类,此时,羊驼继承的羊和驼这两个父类不再是两个m_age,而是一个指向同一个m_age的虚拟指针,此时便不再占用两份空间,就可以解决浪费空间的问题,并且在访问m_age时就可以不用加作用域。一般情况下,继承的进程起源于一个基类的定义,基类定义了其所有派生类的公有属性。如上面从动物到羊再到羊驼,这便是一个简单的继承链,即A类派生B类,B类派生C类,则称A是B的直接基类,B是C的直接基类,A是C的间接基类。

2023-12-21 22:38:11 935

原创 C++函数重载

函数重载。

2023-12-21 22:37:20 861

原创 C++快速排序

函数定义了两个指针 left 和 right,分别初始化为 strat 和 end。接下来,左右指针开始分别从左侧和右侧遍历数组arr,找到需要交换的元素并将其交换位置。left++;right--;第一个while循环,left指针一直往右移动,直到找到大于pivot与arr[right]应该交换的元素。第二个while循环,right指针一直往左移动,直到找到小于pivot与arr[left]应该交换的元素。

2023-12-21 22:34:24 1084

原创 C++冒泡排序

因为内层循环每完成一次,最大那个值(或最小那个值),就已经交换到了最后的位置,所以下次交换的时候我们就要减少一次交换已经排序好的元素,依次类推,所以就有。但上面主函数的 buf1 数组中,只有 5 是需要排序的,其他的都不用排序,好像就是直接把 5 放在最后面即可完成排序了,也就是进行排序 1 次就行了,现在在小优化一下。,原因是在 if 那里退出了,cnt 少加了 1 次,不过这个影响不大。结果说明,某种的优化只能说针对某一个方面,最后还是得见招拆招。当然,这不是万能的哈,比如这样,它就不适用了,把。

2023-12-21 22:32:40 840

原创 C++析构函数

在开辟空间时,需要构造函数来开辟空间,对应,作用域退出时也需要一个函数做“收尾”的工作,与构造函数对应——析构函数析构函数和构造函数作用相反,用于释放对象的内存空间如果程序员未写构造函数,那么系统也会提供一个默认的构造函数,同样,如果程序员未写析构函数,那么系统也会提供一个默认的析构函数,在当前对象退出时,自动调用,进行释放空间。

2023-12-21 22:31:08 922

原创 C++二叉树

本文主要实现了一个二叉树(c++),并且通过迭代的方式,实现了二叉树的。13 篇文章 1 订阅。,中序遍历,后续遍历。

2023-12-21 22:29:47 361

原创 c++类的相关介绍

在显示生活中肯定形形色色的遇见过不少的人、机构、活动,比如每个人从出生被安排上了名字、性别、年龄、身份证号等等,为了数据管理方便将其抽象进代码中并不难,在C语言中使用struct就可以轻松完成,并且结构体比类要简单一些,为什么还有类的诞生呢?可以这么说,一个人不光有名字等属性,他还会有一些行为,比如说话口音不同,走路姿势不同等等,这些行为抽象出来的话应该是函数,将struct于函数绑定起来难不难?可想而知,只有开。

2023-12-21 22:27:08 328

原创 C++结构体

直接赋值的方法虽然很直观,但是如果需要初始化多个结构体变量,那么代码量为很多且很冗余,而顺序赋值的方式会因为参数过多而容易出错,因此我们可以利用函数来为结构体变量赋值。引言提到,在 c++ 中可以将结构体看作没有任何成员函数的对象,因此也可以使用构造函数进行初始化。当然除了指定一个 year, 我们也可以指定 month、day 等,这里就不详细展开了。,简单变量没问题,动态分配的变量会出问题。我们可以用冒号操作来简化构造函数的写法。需要注意的是,结构体=结构体是。结构体包含数组(数组在。

2023-12-21 22:23:02 320

原创 C++题目记录

1.输出10000以内7的倍数或含数字7的数。2.将一个数分解成质数相乘的形式。

2023-11-06 23:37:31 58

原创 C++之 二分查找

这个位置将用来比较目标元素与数组中间元素的大小关系。1. 初始化左边界 `left` 为数组的起始位置(通常是0),右边界 `right` 为数组的结束位置(通常是数组长度减1)。3. 比较目标元素与中间元素的值: - 如果目标元素等于中间元素,那么找到了目标元素,返回中间位置 `mid`。- 如果目标元素小于中间元素,说明目标元素位于左半部分,更新右边界 `right` 为 `mid - 1`。- 如果目标元素大于中间元素,说明目标元素位于右半部分,更新左边界 `left` 为 `mid + 1`。

2023-11-04 22:23:17 59 1

原创 C++一维数组相关题目(课堂作业记录)

这题我一开始将b[m+1]={0};写成的是b[n]={0};然后提示报错,原因是数组溢出,就拿这题的例子来说,n=4,按错的b的数组只开辟了4个空间,而当啊a[i]=5时,无法存入,这就造成了数组溢出。此文仅为自己学习记录。

2023-11-04 21:06:26 103 1

原创 C++中distance函数

std::distance` 函数是C++标准库中的函数,用于计算两个迭代器之间的距离,即迭代器范围的元素个数。`std::distance` 函数返回一个整数,表示从 `first` 到 `last` 之间的距离。`std::distance` 函数的主要功能是计算两个迭代器之间的距离,即迭代器范围的元素个数。这对于确定容器中的元素数量或在特定范围内的位置非常有用。在这个示例中,`std::distance` 函数被用于计算迭代器 `first` 和 `last` 之间的距离,即容器中元素的数量。

2023-10-28 01:48:11 1316

原创 C++中count函数的用法详解

在C++中,`std::count` 函数用于计算容器(如 `std::vector`)中特定值的出现次数。`std::count` 函数返回一个整数,表示容器中值 `value` 出现的次数。在这个示例中,`std::count` 函数用于计算容器 `numbers` 中值为 `2` 的出现次数。最后,输出值 `2` 出现的次数。- `first` 和 `last`:这是迭代器范围,表示要搜索的容器中的元素范围。`first` 是范围的起始,而 `last` 是范围的结束(不包括)。

2023-10-28 01:30:25 2605

原创 C++中merge函数用法详解

std::merge` 函数将合并 `first1` 和 `last1` 范围内的元素,以及 `first2` 和 `last2` 范围内的元素,将结果存储在 `result` 迭代器指向的容器中,并返回一个指向合并后范围的迭代器。在上述示例中,`std::merge` 函数被用于合并两个已排序的序列 `sequence1` 和 `sequence2`,并将结果存储在 `result` 容器中。- `first1` 和 `last1`:表示第一个已排序序列的起始和结束迭代器。

2023-10-28 01:06:53 2228

原创 C++中min_element与max_element函数讲解

函数用于查找容器中的最小元素,并返回一个指向该元素的迭代器。函数用于查找容器中的最大元素,并返回一个指向该元素的迭代器。是迭代器,指定了搜索范围,包括。是迭代器,指定了搜索范围,包括。

2023-10-25 23:09:29 1685 1

原创 C++中迭代器的详细用法

迭代器非常有用,可以用于搜索、插入、删除和修改容器中的元素。它们还允许你在不暴露容器的底层实现细节的情况下访问容器中的数据。在修改容器时,要注意迭代器的失效问题。插入或删除元素可能导致迭代器失效,因此在使用迭代器之前要谨慎检查容器的有效性。这会自动遍历容器中的元素,而不需要显式使用迭代器。这会输出容器中的所有元素。

2023-10-25 19:31:32 629 1

原创 C++中 to_string函数与find函数的用法与实例

'to_string'是C++标准库中的一个函数,用于将数字转换为字符串。它通常用于将整数或浮点数转换为其字符串表示形式,以便进行字符串操作或输出。转换后的字符串可以用于输出、存储或进行其他字符串操作。以下是'to_string'函数的基本用法。头文件,以便正确使用。

2023-10-25 01:00:36 3929

原创 c++程序设计日志(2)

字符型char 表示文本字符 存储长度1字节,存储的是字符的ASCII码 C/C++宽字符类型wchar_t类型,占2字节。typeid返回的“类型”为type_info类的对象,需要通过type_info类的name()获取该”类型“的名字。(类型)(表达式);32L unsigned型在数值的后面加”u”或”U”,0x20UL。long double型在数值后面加”l”或”L”,3.14E-2L。float型在数值后面加”f”或”F”,3.1e-2F。long型在数值的后面加”l”或”L”,

2023-10-06 17:06:15 42 1

原创 c++程序设计日志(1)

ASCII码(American Standard Code for Information Interchnge 美国标准信息交换码) 采用7位二进制进编码(1个字节的低7位,码0~127)UNICODE编码 统一各种语言编码 长度为16位 ASCII码保持不变,长度由8位扩展到16位 其他文化和语言的字符重新统一编码。负数:最高位为1,反码加1 整数的表示(假设一个整数占2字节)1×2n-1=2n-1,即0~2n-1。每个字节的最高位为1,区别单字节的ASCII码。负数:符号位为1,其余位对原码取反。

2023-10-06 16:33:18 37 1

空空如也

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

TA关注的人

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