- 博客(205)
- 资源 (8)
- 收藏
- 关注
原创 while与do...while的区别
图一中需要先判断不符合条件,所以不进进入循环。当a=11的时候就不进入循环了。当a=11的时候就不进入循环了。图二先进入循环,sum加了一次。while放在循环的前面,这两个结果看起来差不多。do放在循环的前面,
2023-03-17 17:42:38 330 1
原创 关于C语言if 、if...else,if...elseif...else的使用方法
通过判断73的成绩,如果大于85为优秀,大于75是良好,大于60是及格,否则是差。通过判断19是否大于等于20,如果是则输出正确,反之输出错误。通过判断20如果大于等于19,则输出正确。
2023-03-16 16:22:42 608
原创 静态代码块,非静态代码块,构造函数加载顺序
运行顺序:父类静态代码块->子类静态代码块->父类非静态代码块->父类无参构造方法->子类非 静态代码块->子类无参构造方法。C++子类为什么先死后生。
2023-01-09 09:18:18 561
原创 java计算两点之间的距离和三角形的面积(海伦公式)
main函数:主要作用是传入需要的点,以及通过调用来计算。首先创建三个类:mian主函数,关于点的类,计算的类。
2023-01-08 09:33:23 1308
原创 使用python简单创建自动点击脚本,使用的是pyautogui
每一次遍历,点击需要的点,然后等待一定的时间,再次点击,即可自动点击。自己按照时间的间隔,调整位置,然后显示不同地方的坐标。将需要的坐标放入数组中。然后获取需要点击的坐标。
2023-01-07 21:45:26 9031
原创 安装pyautogui出现错误WARNING: You are using pip version 20.2.3; however, version 22.3.1 is available.
WARNING: You are using pip version 20.2.3; however, version 22.3.1 is available.
2023-01-07 21:41:10 3780
原创 在Eclipse和IDEA中如何快速输入System.out.println(”~~“)
输出System.out.println()的快捷键是先输入syso,然后按下Alt+/ 即可。输出System.out.println()的快捷键为先输入sout,然后按下Enter即可。
2022-11-01 17:52:44 8174
原创 IntelliJ IDEA 官网打不开解决方法
首先在文件夹中搜索:C:\Windows\System32\Drivers\etc将hosts文件使用记事本方式打开在最后面添加上下面两句话即可:#0.0.0.0 account.jebrains.com#0.0.0.0 www.jetbrains.com保存后就可以打开官网了。...
2021-10-25 11:35:24 1746
原创 Xcode 9.1版本图解怎样编写Python
第一步:第二步:第三步:第四步:保存路径第五步:file->new->file...第六步:other->empty第七步:第八步:python1->edit scheme第九步:第十步:第十一步:第十二步:第十三步:第十四步:完成:...
2021-05-12 16:35:16 358
原创 学习Linux下的gdb调试
目录程序代码第一步:第二步:1,查看命令 list:2,添加断点的命令 break:3,启动调试 r c s:4,查看参数的值 display(需要使用r命令运行后使用):5,设置观察点 watch(需要程序r命令开始调试之后才能增加watch观察点):6,显示某个值的命令 print:7,动态改变程序中某个变量的值set var:(variable)8,退出 quit:程序代码(下面的注释是为了方便接下来看某些命令)第一步:通过g++...
2021-04-01 14:40:51 2310 1
原创 重新理解指针:用实例分清int* int** int*[] (int*)[]四者的区别
一,int * int**这种就是最简单的指针指向一个对象。int *直接指向一个对象;int **指向一个指针如下: int initialInt = 10; int *initialIntPoint = &initialInt; 一个指针对象指向对象 int **initialIntPointPoint = &initialIntPoint; 这个是双指针,指向一个指针对象 cout << "对象: " &...
2021-03-31 20:22:11 13650 3
原创 从源代码到可执行程序的过程
先上结论:预处理 编译 汇编 链接首先创建文件vim hello.ceg:最初文件为:#include<stdio.h>int main(){ //测试 return 0;}一,预处理就是将文件中的宏和注释全部去掉 gcc -E hello.c -o hello.ieg:经过预处理后文件*************int main(){ return 0;}上面的****代表是stdio.h的库的拆分,然后注释
2021-02-14 16:23:21 401 1
原创 main函数之前还能运行程序?
在了解这个之前,我们首先要知道代码四区的概念:运行前:全局区,代码区 运行后:堆区,栈区堆区和栈区显然都是在程序运行后进行的,所以它们都是在main后面。因此就需要从全局区和代码区入手,代码区显然不行,因此只剩下全局区了。结果也就是可以定义全局对象或者变量。方法一:定义全局对象或者变量全局变量:当定义全局变量a的时候,就会调用show函数,因此也就在main函数前运行了show函数这段程序。全局对象:此时定义了全局对象a,所以就会调用类中的构造函数,因此构
2021-02-13 22:57:20 1874
原创 关于extern的用法
这种方法出现的原因:当多个文件中需要共享同一个变量时,可以使用extern首先我们要清除知道extern的作用:表明该变量是在其它文件中定义的定义时分配内存,其它文件引用时不再分配内存extern引用方法:extern 类型 变量名如果某个模块文件中需要使用另一个模块文件中的全局变量,就要用extern说明如下:模块文件test3.cpp中定义了变量a。此时另一个模块x.cpp想要使用模块文件test3.cpp的变量a,因此需要对a进行声明/定义:exter
2021-02-13 21:32:58 522
原创 智能指针:什么是shared_ptr类和weak_ptr类
我们从之前对于auto_ptr和unique_ptr介绍可以的知:已经消失的智能指针——auto_ptr:https://blog.csdn.net/qq_46423166/article/details/113764347C++智能指针——unique_ptr:https://blog.csdn.net/qq_46423166/article/details/113777696auto_ptr有很多问题,比如指针之间可以互相赋值,移动之后一个为空的问题。现在已经被弃用 然后unique_pt
2021-02-13 00:43:35 1593 2
原创 子类为什么先死后生
首先我们看一段代码:class A{public: A(){ cout << "构造A " << endl; } ~A(){ cout << "析构A " << endl; }};class B:public A{public: B(){ cout << "构造B " << endl; } ~B(){ cout << "析构B " << endl; }};...
2021-02-12 20:31:49 1643 3
原创 this指针的意义?
首先我们要知道类中函数和数据的布局:如同上面这个图所示,每个对象都有自己的数据成员的位置,但是共同调用类的函数成员。原因:因为函数成员满足公用的条件,如果每个对象都保存一个函数成员,则消耗很大。然后我们看下面代码:根据上面所说,多个对象共同使用类的函数成员。那么当对象a,b传到函数中时,函数怎样判断是哪个对象呢?此时就使用到了this指针:上面的a其实被隐含转化成了this->a;看下面的图:当第一次进入类构造函数时,this指针的地址和a的地址
2021-02-10 17:11:20 1351 1
原创 了解不同情况下的static关键字
1,全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显示初始化);作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。和普通全部变量的区别:就是不能在多个文件之间使用。而普通的使用extern后可以全文档使用。2,局部静态变量在全局变量前加上关键字stati,局部变量就定义成一个局部静
2021-02-10 02:00:55 264
原创 纯虚函数与抽象类
我们假设一种情况:基类名字是东西,里面有showname(),price()等函数然后继承的子类就是各种存在的事物,比如家具,冰箱,桌子等。这种情况下,显然定义出一个叫做东西的对象是不合适的,因为这个东西的名字和价格无法实际化。 而定义东西这个类的作用就是为子类规范一些函数使用,以及方便使用数组的方式实现一些子类对象的组合。此时我们便可以将东西这个类中的showname(),price()等函数定义为纯虚函数这样做可以清晰的告诉用户当前这个showname(),price()函数是
2021-02-10 01:19:11 1249
原创 C++智能指针——unique_ptr
unique_ptr和auto_ptr类似。但是unique_ptr拥有它指向的对象。某个时刻只能有一个unique_ptr指向一个给定对象。当unique_ptr被销毁时,它所指向的对象也被销毁。初始化:必须采用直接初始化形式:不能调用赋值或拷贝构造函数,避免了两个指针指向同一块地址的问题,避免了auto_ptr一定的错误。但是仍然可以用其他方法: int *x = new int(10); unique_ptr<int> c(x); uni...
2021-02-10 00:38:49 1358 1
原创 已经消失的智能指针——auto_ptr
动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向改该对象的指针。delete,接收一个动态对象的指针,销毁该对象,并释放与之关联的内存。出现问题:不能确保在正确的时间释放它:有时候我们会忘记释放内存,这种情况下会产生内存泄漏有时候再尚有指针引用内存的时候指针被释放了
2021-02-09 22:48:22 2644 1
原创 1684. 统计一致字符串的数目
题目:给你一个由不同字符组成的字符串allowed和一个字符串数组words。如果一个字符串的每一个字符都在allowed中,就称这个字符串是一致字符串。请你返回words数组中一致字符串的数目。示例 1:输入:allowed = "ab", words = ["ad","bd","aaab","baa","badab"]输出:2解释:字符串 "aaab" 和 "baa" 都是一致字符串,因为它们只包含字符 'a' 和 'b' 。示例 2:输入...
2021-02-08 09:45:08 156
原创 239. 滑动窗口最大值:使用数组组成单调栈
题目:给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 ...
2021-02-07 23:28:50 197
原创 496. 下一个更大元素 I:单调栈永远滴神
题目:给你两个 没有重复元素 的数组nums1 和nums2,其中nums1是nums2的子集。请你找出 nums1中每个元素在nums2中的下一个比其大的值。nums1中数字x的下一个更大元素是指x在nums2中对应位置的右边的第一个比x大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释: 对于 num1 中的数字 4 ,你无法...
2021-02-07 07:45:25 239
原创 56. 合并区间
题目描述:以数组intervals表示若干个区间的集合,其中单个区间为intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入:intervals =...
2021-02-07 00:07:57 170
原创 剑指 Offer 48. 最长不含重复字符的子字符串
题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度...
2021-02-06 21:58:24 107
原创 差分矩阵:二次差分
题目:题解:这个类似于反向的前缀和:黑色地方全部加n,就是:整个-红色-绿色+蓝色 s[x1][y1] += x; s[x2 + 1][y1] -= x; s[x1][y2 + 1] -= x; s[x2 + 1][y2 + 1] += x;然后每个位置的结果就是前缀和:s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];代码:#include<iostream...
2021-02-06 20:59:54 1397 1
原创 差分
题目:题解:这种讲某个区间的数据全部加上某一个值可以用插入的方法。通过图上的方法,在A点加上n,在B点减去n,这样就在某个区间内插上一个值初始化方法: for (int i = 1; i <= m; i++) { scanf_s("%d", &x); insert(i, i, x); }插入方法: while (n--) { int l, r, c; sca...
2021-02-06 19:57:46 109
原创 子矩阵的和,二次前缀和
题目:题解:这种前缀和和一次的类似:看上面这个图中,黑色部分的和,即为:红色和-绿色和-黄色和+紫色和即为:sum[x2][y2] - sum[x2][y1-1] - sum[x1-1][y2] + sum[x1-1][y1-1];求每个位置的和也是按照这个方式:sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + s[i][j];然后求哪个部分面积,就讲哪个部分的和相减:代码:
2021-02-06 11:20:35 180
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人