- 博客(40)
- 收藏
- 关注
原创 力扣刷题总结——栈和队列
可以出一道面试题:栈里面的元素在内存中是连续分布的么?刷完栈和队列,对STL的内容有了更加深刻的认识。,而被归类为container adapter(栈的内部结构,栈的底层实现可以是。都是可以的, 主要就是。
2024-04-27 20:39:20 257
原创 Linux fcntl函数
(dup2复制指定的fd,而F_DUPFD用的是lowerst)On success, the new file descriptor is returned.fd是文件描述符,cmd是命令(定义的宏),…表示可变的参数(可有可不有)作用:复制文件描述符、设置/获取文件的状态标志。读法:file control函数。指定的文件描述符文件状态flag。文件描述符文件状态flag。
2024-04-23 11:17:16 683
原创 Linux 系统IO函数之stat、lstat函数
1、普通文件(regular file)2、目录(directory)3、字符设备(character device)4、块设备(block device)5、管道(FIFO)6、符号链接文件(symbolic link)7、套接字文件(socket)详情看。
2024-04-22 18:44:25 690 1
原创 Linux 系统IO函数之open函数
得到111 101 101,即-rwxr-xr-x,目录所属组和其他用户权限为读(4)和执行(1),没有写权限。,它是全系统打开文件表中的一个条目。~umask:即对umask(八进制数)取反,相当于是用0777去减0002,等于0775。drwxr-x- - - 该权限分为4个部分d、rwx、r-x、- - -。flags参数是一个int类型的数据,占4个字节,32位。其中- - -:表示其他用户对该文件所拥有的权限。rwx:表示文件所有者的对该文件所拥有的权限;通过这种方式给flags参数赋值。
2024-04-22 13:29:10 593
原创 Linux 文件描述符
(每个进程默认打开的文件个数是1024个),前三个位置会被提前占用:标准输入、标准输出、标准错误,默认是打开的状态。来定位要操作的文件,文件描述符位于进程的内核区,由内核中的。2、可执行文件 test:是一个程序,只占用磁盘空间,1、test.c:是一个程序,只占用磁盘空间,3、启动 可执行文件 test:创建一个进程,进程启动(程序运行时)以后会有一个。注:PCB是一个很复杂的结构体。,把虚拟地址空间中的数据。
2024-04-21 22:29:29 229
原创 Linux 文件IO
3、I/O缓冲区:提高程序执行效率(降低写磁盘次数),缓冲区满了,只调用一次Linux系统I/O写入磁盘;2、文件读写指针位置:读写文件过程中指针的实际位置。对文件数据进行操作,有读指针和写指针。1、4G的内存加载三个大小分别为1G、2G、3G的应用程序时会出现内存不够的问题;1、文件描述符:索引到对应的磁盘文件;缓冲区默认8192byte,大概8K,不建议修改它。,标准C库IO函数得到 fd 后再给。找到对应的文件,再通过各种。因此发明虚拟地址空间技术!没法加载新程序的情况。,系统IO函数会返回。
2024-04-21 21:58:03 254
原创 Linux GDB调试
可以看出加入-g文件变大了。gdb test(gdb) help (查看帮助文档)(gdb) q (退出)-g选项的作用是在可执行文件中加入源代码信息,比如可执行文件中第几条机器指令对应源代码的第几行,并没有把源代码嵌入可执行文件中。所以源代码文件不可以没有。1、显示(gdb) list357 int a, b;12 b = 30;++i) {(gdb) list 10 (第十行开始显示)
2024-04-21 19:45:25 233
原创 C++ 指针越界的小实验
可以看出一点规律,即使指针访问越界,指针本身的值(地址)也是在以int大小(4)逐渐增加的,而它的解引用却比较奇怪,从边界+1的位置开始,呈现出。目前学的很浅,不知道原因,这里先记录一下,深入学习后再来更新。如果一个指针指向的数组发生指针越界时会怎么样呢?
2024-04-17 12:42:46 119
原创 KMP算法笔记-力扣28.找出字符串中第一个匹配项的下标
如果函数形参是int* next,那么实参就是&next[0],把首元素地址传过去,然后用一个in类型的指针指向它。例如,对于一个数组 int a[],你可以直接将 a 作为参数传递给函数,因为 a 本身就是数组的地址。相等的前缀和后缀,匹配失败的位置是 后缀子串 的后面(f),那么我们找到与后缀aa相同的前缀aa的 后面(b)重新匹配就可以了。前后缀不相等就回退,前后缀相等就更新next数组的值,最终得出next数组。vector 是一个。的,因此可以通过数组名或数组的指针来访问数组的元素。
2024-04-15 12:53:18 555
原创 C++ 一个有关类模板、构造函数、析构函数、拷贝构造、重载等的数组案例分析
我有个点不太确定,请大佬指正是否正确:因为arr1 2 3是创建在栈上的局部变量,所以遵循先进后出的原则释放,所以先释放arr3,然后依次释放arr2、arr1。花了两个多星期,黑马的课程终于看到STL模板库了,后面继续学习加油吧(ง •_•)ง。Main.cpp代码。
2024-04-12 16:45:48 297
原创 C++多态 内在原理剖析
这里由于创建的还是cat子类对象,所以调用speak公共接口时候,会从子类中找函数确实的入口地址,确定是cat的入口地址就会做cat的speak函数,确定是dog的入口地址就会做dog的speak函数。1、父类中定义虚函数会生成一个虚函数(表)指针,指向一个虚函数表,表内记录虚函数的地址:&Animal::speak, 这里用引用表示地址,speak是虚函数。当父类的指针或者引用指向子类对象时候,发生多态(运行时发生,属于动态多态)子类也只继承虚函数的指针:虚函数(表)指针,它指向一个虚函数表。
2024-04-09 13:52:47 331 1
原创 C++ this指针的概念和使用
在C++中成员变量和成员函数是分开存储的。每一个非静态成员只会诞生函数实例,也就是说多个同类型的对象会。那么问题是:这一块代码是如何区分哪个对象调用自己的呢?c++通过提供特殊的对象指针,this指针,解决上述问题。!this指针是在每一个 非静态成员函数 内的一种指针(内置的,我一直都在你身体里哦~)。this指针不需要定义,直接使用即可。
2024-04-06 15:26:47 1065 1
原创 C++使用g++链接动态库时遇到的问题
报错动态库加载失败:cannot open shared object file: No such file or directory。通过这以下命令创建动态库libcircle.so和libpoint.so(默认当前路径在main函数这里)有了,再运行./case2_share_main就可以正常运行了!看一下case2_share_main的动态库依赖关系。主文件:case2_main.cpp。头文件夹:include。
2024-04-03 15:00:44 333 1
原创 C++中指针delete的学习心得
2、delete掉的指针初始化为nullptr(C++11新标准下避免使用NULL),此时输出c会是0(也就是它的地址),而不能输出*c,因为空指针不指向所有对象。1、利用delete可以释放堆区的数据,但是并不会让这个指针消失,而是会统一的都指向某个地址,这个地址所对应的值也是一个 不确定 的值。通过我尝试发现,再重新预处理、编译、汇编、链接后,上面两个值会变化(我目前还不知道什么原因,还在学习中。new 和delete是运算符,不是函数,因此执行效率更高,malloc和free是函数;
2024-04-01 15:44:00 179
原创 解决vscode配置远程连接失败问题:过程试图写入的管道不存在的解决方法
还有个帖子说 把known_host(windows下everyt搜一搜就能找到)里面的内容删除掉,但是我试了没用T T。如果不行就重启一下VScode和虚拟机多尝试几次。再输入ifconfig就可以看到多了一个ip地址。1、sudo -i切换为root用户。2、输入dhclient -v。3、最后exit退出root。
2024-03-28 15:26:37 255
转载 Android Studio学习笔记(一)控件的使用
想通过Android Studio做毕业设计,因此开始学习此软件,这是B站的up主 国防科大Allen 的视频教程笔记,方法日后复习之用。1.TextView 设置跑马灯形式的滚动文本<TextView android:id="@+id/tv_one" android:text="@string/tv_one" android:shadowColor="@color/red" android:shadowRadius="3"
2022-01-10 20:28:48 573
原创 WebGIS学习笔记(二)OpenLayer+geoserver+jquery实现时间滑块控制各个朝代图层的显示
通过openlayer引用geoserver发布的矢量图,用jquery控制各个图层显示的函数,我是通过数字来控制的,1~24分别代表24个朝代,以此来写的JS函数。定义的一些变量var oSpanNum =1;//总的时期数//var chaodai = ["static/jsonData/春秋.json","static/jsonData/战国.json", "static/jsonData/秦.json", "static/jsonData/西汉.json", "static/jsonData/
2021-07-08 16:12:00 379
原创 WebGIS学习笔记(一)使用OpenLayer 5调用geoserver发布的矢量图
使用OpenLayer 5调用geoserver发布的矢量图学习总结最近在学习WebGIS做实习,想要通过openlayer显示自己按照图层属性来分类成不同颜色的地图。网上案列很多,但都没有成功,今天重新编辑了代码,无意中注释掉了一句话,居然成功了!原来是extent搞的鬼!//下面是js的代码function init() {/*初始执行的方法*/ var map = new ol.Map({ target:'map', layers:[
2021-07-02 09:06:14 304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人