- 博客(35)
- 收藏
- 关注
原创 [C/C++]天天酷跑超详细教程-中篇
主要学习开发思想,一些开发技巧,将语法用到实战,了解计时器,计数器,枚举,结构体在开发中的应用,灵活运用函数封装提高程序的可读性,如何改善了用户点击休眠时的问题。
2023-09-02 07:19:29
29603
121
原创 常静相伴:深度解析C++中的const与static关键字
在C++中,const和static是两个重要的关键字,它们分别用于声明常量和静态成员。const用于指定一个值在程序运行期间将保持不变,提高代码的可读性和安全性;而static用于指定一个成员在类的所有实例之间共享,提供静态的存储和管理方式。理解const和static的概念以及正确应用它们可以帮助我们编写更健壮和高效的C++代码。在C++中,const和static是两个强大的关键字,它们为我们提供了更加丰富和灵活的编程工具。const使得代码更加安全可靠,通过禁止对常量进行修改确保程序的正确性。
2023-09-01 10:00:00
807
17
原创 [C++]构造与毁灭:深入探讨C++中四种构造函数与析构函数
1.没有参数的构造函数成为默认构造函数2.没有手动定义默认构造函数时,编译器自动为这个类定义一个构造函数。3. 如果数据成员使用了“类内初始值”,就使用这个值来初始化数据成员。否则,就使用默认初始化(实际上,不做任何初始化)只有C++11可以使用类内初始值】如果既有类内初始值,在默认构造函数里面又有初始化,则以默认构造函数里的为准说明:如果某数据成员使用类内初始值,同时又在构造函数中进行了初始化,那么以构造函数中的初始化为准。相当于构造函数中的初始化,会覆盖对应的类内初始值。
2023-08-31 12:18:58
1218
24
原创 [C/C++]指针详讲-让你不在害怕指针
指针在编程语言中扮演着重要的角色,特别是在C语言中。指针提供了直接访问和操作内存地址的能力,使得编程更加灵活、高效,并且可以处理各种复杂的数据结构和算法。以下是指针的几个重要方面和作用:内存管理:指针允许程序直接与内存交互。通过使用指针,可以动态地分配和释放内存,避免了静态内存分配所带来的限制。这在处理动态数据结构(如链表、树、图等)和大规模数据中非常有用。传递参数和引用:通过指针,可以在函数之间传递参数和引用。传递指针作为函数参数,可以避免在函数调用时产生副本,节省了内存和时间开销。
2023-08-30 09:04:06
2424
25
原创 [C/C++]天天酷跑游戏超详细教程-上篇
天天酷跑,一款童年游戏,主要是进行跳跃操作,和躲避障碍物,该结主要实现背景图的连续播放,跳跃,与障碍物创建。 实际的开发流程 对于初学者,最好的开发方式,从用户界面入手 选择图形库或者其他引擎 天天酷跑,是基于easyx图形库的 1)创建游戏窗口 2)实现游戏背景 a.3重背景不同的速度同时移动 b.循环滚动背景的实现 3)实现游戏背景 a.加载背景资源 b.渲染
2023-08-29 04:58:30
7387
25
原创 [C/C++]函数的栈空间(避免栈空间溢出)
栈的内存默认为2兆,内存可以修改站内存储的是非new或molloc出来的变量,没调用一次函数,就会在栈内开辟一段空间,大小为该函数内所有变量的内存和,当内存过大时,栈爆掉就会引发异常程序是从高内存向低内存进行存储的,两个相邻空间的内存地址相减就能得到每分配一块空间,这块内存空间就叫做 " 栈帧 "
2023-08-28 08:18:57
693
原创 [C/C++]内存管理,对内存进行操作
申请的内存被多次释放,程序会崩掉//动态内存被多次释放p[0] = 0;//检测释放运行到次处内存泄露,只开辟空间,不进行释放,次数达到一定时,会将堆区的资源耗尽//内存泄露do {释放的内存不是申请的地址,地址偏移,导致内存不能被释放,程序无响应的崩掉//释放的内存不是申请的地址p2[0] = 1;i < 10;i++) {p2++;delete[]p2;
2023-08-28 08:14:15
371
原创 [C/C++]程序员入门实战必学小游戏设计思想
【代码】程序员入门实战必学小游戏设计思想。可以增强程序开发的技巧,将基本语法用于实战,不在面向课本,而是面向实战,枚举 : 一般用在固定的数量上,枚举的首元素为0,可以指定某元素的值,目的时为了增强程序的可读性布尔类型的灵活使用 : 可以使用布尔类型的返回值判断执行是否成功,取代常用的void类型easyx图形库中的基本函数: 游戏窗口的创建,图片的加载(loadimage)与渲染(putimage),文字的设计(RECT) 文本颜色(settextcolor),文本样式(settextstyle),
2023-08-25 01:39:08
1247
12
原创 [C/C++]提升篇-检测知识漏洞增加编程技巧
空指针,就是值为零的指针,(任何程序数据都不会存储在地址为0的内存块中,他是被操作系统预留的内存块,是不能访问的),int *p =NULL;初始化为空指针,避免访问非法数据指针不在使用时,可以设置为空指针表示这个指针还没有具体的指向,使用前进行合法性判断if(p){//指针不为空,对指针进行操作。
2023-08-16 04:02:36
1076
6
原创 [C/C++]操作硬件的位运算
【代码】[C/C++]操作硬件的位运算。问题 :把地址为0x80040的寄存器的最低4位设置为0110解决方案使用位运算什么是位?内存的基本单元是字节,一个字节有八位位与 &0 & 0 00 & 1 01 & 0 01 & 1 1对应位,都是1,结果才是1000010000000001100000000 -> 0cout
2023-08-13 14:18:19
140
原创 【LeetCode】字符串匹配
为了减少不必要的匹配,我们每次匹配失败即立刻停止当前子串的匹配,对下一个子串继续匹配。如果当前子串匹配成功,我们返回当前子串的开始位置即可。如果所有子串都匹配失败,则返回 −1。常见的字符串匹配算法包括暴力匹配、 Knuth-Morris-Pratt 算法、Boyer-Moore算法、Sunday 算法等。我们可以让字符串needle 与字符串 haystack 的所有长度为 m 的子串均匹配一次。
2023-08-13 03:13:13
254
原创 [网络爬虫]天气预报案例
爬取全国各地区的天气情况,调用的API接口API:http://t.weather.sojson.com/api/weather/city/
2023-08-12 14:30:54
804
原创 [LeetCode]矩阵对角线元素的和
假设矩阵的大小为 n * n,下标从 0 开始计数。行下标和列下标之和等于 n-1。对于二维数组,矩阵的副对角线上元素的下标。
2023-08-11 02:13:58
383
原创 [网络爬虫]selenium实现自动登录Boss直聘
【代码】selenium实现自动登录Boss直聘。问题 : selenium模块和爬虫之间具有怎样的关联便捷的获取网站中动态加载的数据便捷实现模拟登录什么是selenium模块?基于浏览器的自动化的模块selenium使用流程:环境安装: pip install selenium下载一个浏览器的驱动程序 (谷歌浏览器)下载链接 : http://chromedrive.storage.googleapis.com/index.html
2023-08-09 00:39:19
471
原创 [网络爬虫]西瓜视频案例
【代码】[网络爬虫]西瓜视频案例。爬虫作用 : 采集数据/模拟用户行为原理 : 模拟客户端向服务器发送请求爬虫案例思路找视频链接4k 附近有个main_url视频链接需要通过base64解码该链接才能拿到视频原链接Base64 在线编码解码 | Base64 加密解密 - Base64.us可以下载视频代码访问到https://www.ixigua.com/7258418700380799499拿到网页源代码从网页源代码当中拿取main_url将main_url还原为视频原链接访
2023-08-07 22:23:16
818
1
原创 [网络爬虫]批量爬取王者荣耀所有皮肤图片
在页面源代码请求出来的源码是假的数据,皮肤img的那块是统一格式的,拿不到想要的img,换种思路,抓包,从img分类里面,拿到皮肤图片的url,分析之后,只需要改动英雄的id 皮肤的url后面加上数字,则可以拿到正确的url,需要用到的知识,request请求,os可以写正则和创建文件夹,字符串分割,xpath数据解析,可以使用多线程加快数据的保存。中文乱码问题:查看charset字符集,用encoding改为相应的字符集即可。
2023-08-05 02:57:09
164
原创 网络爬虫爬取简历模板案例
测试期间,只爬取了一页建立,想要爬取所有的简历模板只需要改动url = 'https://sc.chinaz.com/jianli/free.html',加上相应的参数,用循环套起来即可。
2023-08-02 05:31:30
726
原创 [网络爬虫]Xpath数据解析
path解析 : 最常用且最便捷最高效的一共解析方式,通用性xpath解析原理实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中调用etree对象中的xpath方法结合着xpatj表达式实现标签的定位与内容的捕获环境的安装pip install lxml如何实例化一个etree对象: from lxml import etree将本地的html文档中的源码数据加载到etree对象中etree.prase(filePath)可以将从互联网上获取的源码数据
2023-08-01 03:42:56
151
1
原创 [网络爬虫]数据解析上
soup.find_all('tagName') : 返回符合要求的所有标签 (列表)- select('某种选择器(id,class,标签...选择器)'),返回的是一个列表。- soup.tagName : 返回的是文档中第一次出现的tagName对应的标签。- text/get_text() : 可以获取某一个标签中所有的文本内容。- 解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储。- 2. 标签或者标签对应的属性总存储的数据进行提取 (解析)- 提供的用于数据解析的方法和属性。
2023-07-21 01:47:47
513
1
原创 [网络爬虫]入门篇-协议与request模块的讲解
1.http协议概念:就是服务端和客户端进行数据交互的一种形式2.常用请求头信息User_agent : 请求载体的身份标识Connection : 请求完毕后,是断开连接还是保持连接3.常用请求头信息Content_Type : 服务器响应回客户端的数据类型4.https协议安全的http协议(安全的超文本传输协议)5.加密方式对称密钥加密 : 客户端会指定加密方式,最后将密钥和密文一起发送给服务器,服务器在根据密钥解密。
2023-07-20 03:23:28
610
1
原创 [网络爬虫]入门篇-对爬虫的了解
编写第一个网络爬虫1.利用python-whis库可以查看网站的所有者2.利用builtwith库可以识别网站所用的技术3.利用robots.txt可以让爬虫了解爬取该网站时存在哪些限制4.无论使用哪种用户代理,都应该在两次下载请求之间给出5秒的抓取延迟,我们需要遵从该建议以避免服务器过载。
2023-07-19 02:57:25
554
原创 [C/C++]解决使用VS图形库putimage渲染png图片出现黑边情况
【代码】[C/C++]easyx图形库png图片去除黑边。在使用VS图形库时候,可能使用putimage函数渲染的png格式的图片透明部分会变成黑边,则使用该putimagePNG接口可以去掉黑边,使黑色部分呈现透明状态,代码如下:
2023-07-16 01:27:05
1641
3
原创 [C/C++]进制之间的转换
进制之间的转换,arr数组里面存在求余之后能出现的所有余数,将十进制转化为target进制传入到Conversion函数,利用num/B一直循环商不为零时,当num = 0时候,则递归结束,函数开始回退正好将余数反过来输出,刚好是目标进制数,其余进制之间的转化也可也借助十进制为桥梁进行转换.
2023-06-17 00:12:11
124
1
原创 [C/C++] 第一节 基本数据的表现
1.3.常变量#define PI 3.1 //字符常量//常变量字符常量在预编译时只进行字符替换,在预编译后字符常量就不存在了(全置换为3.14),对符号常量的名字是不分配存储单元的,而常变量是要分配存储空间的.
2023-03-21 13:32:25
668
1
原创 [C/C++]逼格提升-常见错误总结
. static修饰局部变量时:局部变量被static修饰后生命周期将变得和整个程序一样长,但作用域没有改变,本质上是因为static修饰的局部变量的储存位置改变了,将原本应该存储在栈区的局部变量存储在静态区。静态区上数据存储的特点是,程序结束变量才被释放. static修饰全局变量时:全局变量是是在不同源文件中可以使用的,只不过需要先用extern外部声明一下,若用static修饰了全局变量,则该变量不能被其他源文件使用,全局变量是具有外部链接属性的,若用static修饰则把外部链接属性变成了内
2023-03-19 19:00:25
373
4
C语言训练营:从易到难,巩固语法、应对考试与竞赛
2023-08-28
c++链表 字符串字符读取错误,无法分配内存
2023-05-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人