- 博客(19)
- 收藏
- 关注
原创 Template函数模板
函数模板就是一个通用的函数,函数类型和形参不确定,用一个虚拟的类型来代表。凡是函数体相同的函数都可以用这个模板来代替。编译器自动推导实参的数据类型,生成该类型的函数定义。
2023-12-12 22:53:02
239
原创 内联函数(inline
内联函数,函数前面加关键字inline内联函数在编译的过程中没有函数调用的开销(不生成函数标记,没有压栈等调用过程),直接在调用处展开代码。注意:写inline是对编译器的建议,编译器在执行的时候会自己判断,发现这个函数不适合做成内联,那么写inline也没用,编译器会当成普通函数执行。
2023-08-02 21:49:53
285
原创 VS的配置文件.sln、.vcxproj、vcxproj.user(4.20))
vcxproj.filters文件:xml文件。在下图中,.cpp 文件位于源文件节点下。.h 文件位于头文件节点下,.ico 和 .rc 文件位于资源文件下。vcxproj:xml文件,文件筛选器。.sln配置文件作用的范围是整个解决方案,而.vcxproj配置文件和.vcxproj.user配置文件和.vcxproj.filters配置文件对应的是具体项目。vcxproj.user:user是本地化用户配置,允许多个用户使用自己喜好的方式配置这个项目(例如打开项目时候窗体位置等与项目内容无关的配置)
2023-04-20 21:16:55
2789
原创 VS 配置管理器 debug_release,X86_X64,生成_部署
VS提供了这一功能。在重新生成这个项目,项目文件目录会有Release文件,里面的exe就是生成的。1)运行时库:Debug版本采用了一些保护机制来帮助发现错误,Debug版本的Runtime Liabrary(运行时库)加强了错误检测,应当指出,如果Debug有错误,而Release版本正常,程序肯定是有 Bug的,只是我们还没有发现。在汇编的层次上,X86与X64的寄存器长度不同(CPU同时处理的数据位数不同),同理寻址范围也相差很大,指令集也不一样。long的长度不同,X86是4B,X64是8B。
2023-04-20 21:16:15
2332
原创 const修饰函数、返回值、参数(2.24)
因为上面说了形参在接收的时候是会创建一个临时变量的,那么对于传递的自定义类,他会new一个对象出来,这个对象调用构造函数构造,而在函数结束时还要调用析构函数析构,这样带来的开销就非常大了。以上,对于类的成员变量的修改,即使不是修改值,而是将成员变量从一个int型变为一个地址,这样也是一种对于成员变量的改变。而在const修饰的函数中,对于成员变量是给予了const属性的。而const成员函数只能调用const成员函数,对于非const函数,即使在函数内部没有修改成员变量,也不能被const函数所调用。
2023-04-20 21:12:20
5430
原创 C++输入型参数和输出型参数(2.24)
这时函数的输入(给函数本身的)输出(需要返回给使用者的)就都要靠参数来完成了。这里的参数指的是形参列表里面的参数。外部调用函数的时候通过形参列表把参数传给函数,函数再通过返回值拿到想要的结果。另注:const char *src不是说src指针本身不可变,而是说src所指向的元素是不可变的。**1.作为输入:**作为输入的指针型变量在函数内部是不会进行修改的,所以一般加const。:通常这个形参是指针型且没有加const,代表外部需要函数处理这个指针所指的变量。一、为什么做这种区分?
2023-04-20 21:11:24
1462
原创 C++Primer(4.20)cout、clog、cerr区别
上面的程序输出到cout.txt里面,但事实上只有cout重定向到文件里面了,cerr和clog只能在屏幕上输出,不能重定向。这段代码缓冲区没满,我也没做任何刷新缓冲区的操作,也能正常输出。而在缓冲区的帮助下,cout将数据先写入缓冲区,等到满足条件时一次刷屏输出。这样就基本搞清楚了,只用cout输出的话,万一程序崩了,想要输出的关键信息可能还在缓冲区里面没出来。1)强制刷新缓冲区:比如flush,还有endl(endl可以理解为/n+flush),程序结束的时候。cerr:无缓冲输出,不可重定向。
2023-04-20 21:08:50
412
原创 JVM学习(二)Java内存区域与内存溢出异常
JVM学习(二)Java内存区域与内存溢出异常只记录在学习《深入理解Java虚拟机》时的一些个人理解,可能有理解错误的地方,欢迎指正。书里面的比喻很有意思,将C++比喻为内存机制里面的皇帝和劳动者,既拥有每个对象的所有权,又担当从开始创建到消除的全部责任。这个比喻还是比较贴切的。Java在虚拟机的帮助下,实现了内存自动管理的机制,对于一个new操作不需要手动的去delete(在写C++数据结构的时候我就经常因为忘记delete而出问题)。不容易有内存泄漏或者溢出。但是一旦出现内存问题却很难排查,
2021-01-31 12:47:11
248
原创 JVM学习(一)
JVM学习(一)只记录在学习《深入理解Java虚拟机》时的一些个人理解,可能有理解错误的地方,欢迎指正Java技术体系与Java语言发展史在之前已经学习过这里面不进行过多赘述Java是编译型语言还是解释型语言·“像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他
2021-01-30 11:18:22
137
原创 CSP 2020-06-01 线性分类器
逻辑有点混乱#include<iostream>using namespace std;struct Point { int x; int y; char type;};struct Inquire{ int a; int b; int c;};int main() { int n, m; cin >> n >> m; Point * p = new Point[n]; Inquire * quire = new Inquire[m]
2020-09-26 20:56:50
158
原创 csp 碰撞的小球
#include<iostream>using namespace std;struct Ball{ int a; bool s;};int main(){ int n, l, t; cin >> n >> l >> t; Ball b[100]; for (int i = 0; i < n; i++) { cin...
2020-02-26 20:19:29
202
原创 csp 买菜
#include<iostream>using namespace std;struct Time{ int a; int b;};int GetMin(int a,int b){ if (a >= b) return b; return a;}int GetMax(int a, int b){ if (a >= b) return a;...
2020-02-26 06:46:02
256
原创 csp 201812-1小明上学
#include<iostream>using namespace std;int main(){ int r, g, y; cin >> r >> g >> y; int n; cin >> n; int* k = new int[n]; int* t = new int[n]; int count = 0; f...
2020-02-03 11:42:03
13299
原创 csp 201809-1 卖菜
#include<iostream>using namespace std;int main(){ int n; cin >> n; int* a = new int[n+1]; int* b = new int[n+1]; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (i...
2020-02-02 21:14:01
176
原创 csp 跳一跳
本人为初学学生菜鸟,如有问题还请各位指正,臣不胜感激涕零题目如下:我们可以分析得:开一个为30的数组,若上一个为0(且本次不为0),则不继续输入。如果本次为1,则加一,count 归0;本次为2 ,则 2+ count*2,并且count+1;代码如下:...
2020-01-31 11:46:30
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1