自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 gdb简单学习(后期完善)

gdb调试工具

2023-07-03 09:23:57 97 1

原创 shared_ptr循环引用问题

weak_ptr是C++标准库中智能指针的一种类型,用于解决循环引用问题和避免悬挂指针(dangling pointer)的情况发生。与shared_ptr不同,weak_ptr并不拥有所指向对象的所有权,它只是对被管理对象的一个观察者。解决循环引用问题:当两个或多个对象相互持有对方的shared_ptr时,形成循环引用。这种情况下,对象的引用计数永远不会变为0,导致内存泄漏。通过使用weak_ptr可以打破循环引用,避免内存泄漏的发生。代码见上面示例;weak_ptr允许你观察由shared_ptr。

2023-07-01 22:50:11 621

原创 constexpr简单示例

的使用有一些限制和规则,例如函数体内只能有一个返回语句、初始化表达式必须是常量表达式等。修饰函数、变量和构造函数时,可以在编译时进行常量计算和优化。的用法,它使得在编译时进行常量计算和优化成为可能,提高了程序的性能和效率。由于该调用在编译期间就可以确定结果,所以它可以用作编译时常量。函数使用递归计算给定数字的阶乘,并返回结果。计算给定整数的平方,并返回结果。获取圆的面积,其计算在编译时进行。,允许在编译时对其进行求值。,允许在编译时构造对象。在这个例子中,我们定义了一个。,可以在编译时求值。

2023-07-01 14:16:41 110

原创 C++之&&和&区别

都是引用类型,但它们具有不同的语义和用法。左值引用(Lvalue reference)是指绑定到左值(Lvalue)的引用类型,通常使用。右值引用(Rvalue reference)是指绑定到右值(Rvalue)的引用类型,通常使用。左值是指可以取地址并且具有持久性的表达式,例如变量、数组元素、成员变量等等。都是引用类型,但它们具有不同的语义和用法。,它接受一个右值引用类型的参数,并输出该参数的值。是一个通用引用类型,可以同时接受左值引用和右值引用。在上面的示例代码中,我们定义了一个函数。

2023-04-04 09:59:20 4546

原创 完美转发&&std::forward()

完美转发是一种 C++ 技术,用于在函数模板中精确地将参数传递到另一个函数,同时保留原始参数的类型信息和左右值属性。它是通过使用通用引用(也称为万能引用)和函数来实现的。通常情况下,在编写函数模板时,我们需要将传递给函数的参数传递给另一个函数。在上面的代码中,我们定义了一个函数模板foo,其中的参数arg是一个模板参数类型,它会被传递给另一个函数bar,但是这样会丢失一些信息,例如参数的左右值属性、是否为 const 或 volatile 限定符等等。为了避免这种情况,可以使用通用引用和。

2023-04-04 09:50:42 168

原创 Makefile

makefile

2023-04-01 14:42:26 1269

原创 linux中如何生成.so文件并且使用

使用gcc编译器链接目标文件,并使用-shared选项生成共享库文件(.so文件)。在这个示例中,我们编写了一个名为main.cpp的程序,它将动态加载共享库libmylib.so,并调用其中的hello()函数。最后,我们将编译main.cpp程序,并链接动态加载库(libdl.so)以确保程序能够正确地调用dlopen和dlsym函数。注意:在编写共享库时,需要将导出的函数声明为“C”风格的函数,以便在其他程序中正确使用。我们将编写一个使用共享库的程序,该程序动态加载共享库并调用其中的函数。

2023-03-26 14:05:04 1924

原创 C++之vector的简单使用

vector 的底层实现是基于数组和指针,它采用了动态内存分配的方式来实现可变长度。vector 内部一般包含三个指针:指向第一个元素的指针、指向最后一个元素的指针、以及指向当前分配的内存空间末尾的指针。在 C++ 中,vector 是一种动态数组(Dynamic Array)容器,它可以存储任意类型的数据,并且支持快速随机访问、尾部插入/删除等操作。总之,vector 是 C++ 中非常重要的容器类,它具有灵活性高、可扩展性好等优点,并且在实现上较为简单易懂。

2023-03-26 13:11:35 93

原创 C++之左值和右值以及std::move()

当我们进行复制操作时,需要分配新的内存空间,并将原有的字符串数据复制到新的内存空间中,这会消耗大量的时间和内存。总之,std::move() 是 C++11 中非常重要的一个函数,它可以实现移动语义,提高程序的性能。但是,在使用 std::move() 时需要注意一些细节,尤其是对于被移动对象的状态要进行合理的处理。在这个示例中,obj1 在进行 std::move() 操作后,它的状态将变为无效,即不能再访问其中的数据。在这个例子中,x 是一个左值,std::move(x) 返回一个对应的右值引用 y。

2023-03-26 13:06:21 131

原创 C++多态性(polymorphism)

在这个示例中,我们使用虚函数实现了多态性。从Shape派生出了一个Circle类,并且在Circle类中重新定义了draw函数。然后,我们通过Shape指针来调用Circle对象,这样就可以执行Circle中的draw函数了。在这个示例中,我们定义了一个Animal基类和一个Dog派生类,并且在Dog类中重新定义了makeSound函数。在这个示例中,我们定义了一个Shape基类,其中包含一个纯虚函数draw。然后,我们从Shape派生出了一个Circle类,并且在Circle类中实现了draw函数。

2023-03-26 12:58:39 69

原创 C++虚函数

【代码】C++虚函数。

2023-03-26 12:54:59 40

原创 回调函数C++,C语言

在main函数中,我们将callback函数的地址赋值给callbackPtr函数指针,然后将该函数指针作为参数传递给doSomething函数。以下是一个简单的示例,其中定义了一个函数指针类型CallbackFunc,并在main函数中将回调函数callback的地址赋值给该函数指针,最后在doSomething函数中通过该函数指针调用回调函数。当我们需要在程序中使用回调函数时,我们需要定义一个函数指针类型,然后将回调函数的地址赋值给该函数指针,最后在需要调用回调函数的地方通过该函数指针调用回调函数。

2023-03-26 12:49:18 44

原创 C++学习之继承inherit

继承的自我学习总结

2022-10-16 20:19:45 403

原创 2021-01-26题2001

问题描述输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。输入值输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。输出量对于每组输入数据,输出一行,结果保留两位小数。样本输入0 0 0 10 1 1 0样本输出1.001.41#include <stdio.h>#include <math.h>int main(){ double x,y,z,w,len; while(sc

2021-01-26 18:16:19 85

原创 2021-01-26题2000

问题描述输入三个字符后,按各个字符的ASCII码从小到大的顺序输出这三个字符。输入值输入数据有多组,每组占一行,有三个字符组成,之间无空格。输出量对于每组输入数据,输出一行,字符中间用一个空格分开。样本输入we阿斯x样本输出当量广告x#include <stdio.h>int main(){ char a,b,c,t,d; while(scanf("%c %c %c",&a,&b,&c) != EOF) {

2021-01-26 18:14:11 53

原创 2021-01-25 题2006

问题描述给你n个整数,求他们中所有奇数的乘积。输入值输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,然后是n个整数,你可以假设每组数据必定至少存在一个奇数。输出量输出每组数中的所有奇数的乘积,对于测试实例,输出一行。样本输入3 1 2 34 2 3 4 5样本输出315#include <stdio.h>int main(){ int n,sum,i,num; while(scanf("%d",&n)

2021-01-25 23:18:04 51

原创 2021-1-23Acmer题1001

问题描述嗨,欢迎来到HDOJ(杭州电子科技大学在线法官)。在此问题中,您的任务是计算SUM(n)= 1 + 2 + 3 + … + n。输入值输入将由一系列整数n组成,每行一个整数。输出量对于每种情况,在一行中输出SUM(n),然后输出空白行。您可以假设结果将在32位有符号整数的范围内。样本输入1个100样本输出1个5050#include <stdio.h>int main(){ int i,n,sum; while(scanf("%d",&amp

2021-01-23 19:49:59 325

原创 2021-1-23 Acmers题1000

问题描述计算A + B。输入值每一行包含两个整数一个和乙。处理到文件末尾。输出量对于每种情况,在一行中输出A +B。样本输入1 1样本输出2在这里插入代码片#include <stdio.h>int main(){ int a,b; while( scanf("%d %d",&a,&b)!=EOF) printf("%d\n",a+b); return 0;}...

2021-01-23 19:46:27 88

原创 2021-01-22Acmers题2005

问题描述给定一个日期,输出这个日期是该年的第几天。输入值输入数据有多组,每组占一行,数据格式为YYYY / MM / DD组成,具体可见样本输入,另外,可以向你确保所有的输入数据是合法的。输出量对于每组输入数据,输出一行,表示该日期是该年的第几天。样本输入1985/1/202006/3/12样本输出2071#include <stdio.h>#define ture 1#define fasle 0int PanDuanRunYue(int *year)

2021-01-22 00:06:06 116

空空如也

空空如也

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

TA关注的人

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