C++相关
文章平均质量分 56
C++相关内容,包括基本内容和报错记录,初学者,记录给自己看
璇焱如柳
这个作者很懒,什么都没留下…
展开
-
linux C/C++ 捕获 SIGSEGV 段错误信号
崩溃是常见现象,有时候,我们希望程序在崩溃的时候,先做点其他操作再崩溃,比如记录崩溃时刻的堆栈信息,或是提前释放一些硬件资源等等,那么就需要让程序捕获错误信号。信号,主要由访问空指针、内存访问越界、访问已释放的内存等原因导致。原创 2024-03-22 17:26:03 · 462 阅读 · 0 评论 -
linux系统breakpad安装、使用方法
BreakPad是Google开发的一款软件崩溃信息记录工具,其大致原理是捕获系统底层发出的崩溃信号,将此刻软件的堆栈信息并进行分析生成报告,可以很方便的定位问题代码。原创 2024-03-19 15:12:14 · 1419 阅读 · 0 评论 -
LInux:生成崩溃程序的core文件
core文件是linux系统下一种记录软件异常的机制,在进程运行崩溃时,系统会将coredump信息写入core文件。这样就方便我们定位软件问题。原创 2023-07-03 11:38:29 · 3271 阅读 · 0 评论 -
C/C++ 运行shell脚本,并获取返回结果
C/C++运行shell命令通常有两种办法,调用system()或者popen()函数。 `system()` 函数会运行shell命令,并返回标志位,告知用户命令是否运行成功,但是不会返回shell指令的运行结果。有时,我们需要shell命令的运行结果,比如我们写系统监控日志,我们需要把结果写到文件里`popen`函数可以帮助我们。原创 2023-06-30 16:35:04 · 4966 阅读 · 3 评论 -
error: static assertion failed: std::atomic requires a trivially copy type
cppreference对`TriviallyCopyable`的稍微总结了一下,“这意味着可平凡复制类没有虚函数或虚基类”。我们一条一条看`TriviallyCopyable`类型主要分为三类: - 标量类型这里的标量我猜测应该是`int,double,long`之类的内置类型。 - 类而对于类,cppreference说的6条,可以总结成三条:①这个类,至少一个复制构造函数、移动构造函数、复制赋值运算符或移动赋值运算符未弃置 ,就是至少有一个未被delete;②未被弃置的复制构造函数、原创 2023-05-11 15:18:20 · 1499 阅读 · 0 评论 -
C++ error: undefined reference to `__atomic_is_lock_free‘
对于常见的内置类型,比如`int,double,char,long`等等,都是`lock_free`的,可以正常调用`is_lock_free`函数。测试了自定义类型`struct A`从1字节到>8字节的情况,发现1、2、4、8字节是`lock_free`的,其他时候都不是,而且`is_lock_free`函数编译不过,原创 2023-05-11 11:13:10 · 922 阅读 · 3 评论 -
C++ 多线程编程(四) 原子类型atomic
atomicatomic可以实现无锁编程,在效率上要比mutexmtx.lock();return;sum1++;i++)这个例子里边,用多线程对一个变量自增,自增到一个值后结束,比较加锁和原子类型的运行时间,结果如下:经多次测试,这个示例中atomic的效率是mutex的3~4倍。原创 2023-05-11 10:48:12 · 1191 阅读 · 2 评论 -
C++ 多线程编程(三) 获取线程的返回值——future
C++11标准库增加了获取线程返回值的方法,头文件为,主要包括futurepromise、async四个类。那么,了解一下各个类的构成以及功能。原创 2023-05-05 19:24:21 · 2112 阅读 · 0 评论 -
C++ 多线程编程(二) 各种各样的锁
本篇文章主要对C++现有的锁进行介绍,由于锁的种类繁多,而且相关文章已经非常多了,本文不再细讲各种锁的技术细节,而是更注重于各种锁的由来,以及他们针对的问题,如此便能针对自己面临的问题,选择合适的锁。今天是2023年4月21号,目前我使用的是C++20,因此在这篇文章,我们记录C++20中各类的锁。主要包括基本锁和RAII锁,基本锁包括互斥锁 (mutex),定时互斥锁 (timed_mutex),条件变量 (condition_variable),读写锁 (shared_mutex),原创 2023-04-24 17:14:54 · 4129 阅读 · 0 评论 -
C++多线程编程(一) thread类初窥
多线程编程使我们的程序能够同时执行多项任务。在C++11以前,C++没有标准的多线程库,只能使用C语言中的pthread,在C++11之后,C++标准库中增加了thread类用于多线程编程。thread类其实是对pthread的封装,不过更加好用,现在已经广泛用于C++多线程编程。C++11的多线程库主要包含 等头文件,这篇文章只要整理记录头文件的内容。原创 2023-04-20 11:38:19 · 1110 阅读 · 0 评论 -
C++ STL,resize 和 reserve 的区别
resize和reserve扩容处理的区别,带来了主要问题就是push函数使用问题,比如vector的push_back()函数,如果是resize之后再push_back,容器会继续扩容,因为这时候容器已经满了;如果是reverse之后push_back,则会放到vector现有元素的后边。原创 2023-04-04 11:42:21 · 561 阅读 · 0 评论 -
C++ 手动创建二叉树,并实现前序、中序、后序、层次遍历
二叉树的创建是个麻烦事,我的思路是:首先将一个普通的二叉树转化为满二叉树,其中的空节点用一些标识数据来代替,如此一来,就可以用数组索引来描述数据在二叉树的什么位置了。原创 2022-12-07 20:01:42 · 1133 阅读 · 0 评论 -
C++ 手动实现队列(queue) (课后作业版)
队列,循环数组实现,进栈出栈的复杂度都是O(1)原创 2022-11-25 10:44:50 · 590 阅读 · 0 评论 -
C++ 手动实现栈(stack) (课后作业版)
栈,一种遵循先进先出原则的数据结构,可以用顺序表实现,也可以用链表进行实现。这里我使用数组实现方法,包含了进栈,出栈,访问栈顶等功能,以及一些辅助功能。原创 2022-11-24 19:18:53 · 1007 阅读 · 0 评论 -
C++ 手动实现单向循环链表(课后作业版)
单向循环链表,并实现增删查改等功能首先定义节点类,类成员包含当前节点的值, 指向下一个节点的指针。循环链表的尾节点指向头节点原创 2022-11-23 15:23:59 · 703 阅读 · 0 评论 -
C++ 手动实现双向链表(作业版)
手动实现双向链表,包含增删查改功能,附源码原创 2022-11-22 19:42:48 · 803 阅读 · 0 评论 -
C++ 单向链表手动实现(课后作业版)
单向链表,并实现增删查改等功能原创 2022-11-21 15:25:03 · 353 阅读 · 0 评论 -
linux Qtcreator编译自己的动态库(.so),详细全流程
本篇记录Qt编译动态库全流程原创 2022-11-20 21:09:48 · 6201 阅读 · 1 评论 -
C++ 读取文本, 读取( 单字符/ 一行/ 全部 )
读取文本, 读取( 单字符/ 一行/ 全部 ),示例代码原创 2022-11-14 11:09:29 · 1953 阅读 · 0 评论 -
C++ 构造函数详解
在定义类的成员函数的时候,一般的成员函数与普通的全局函数没有太大的区别,在定义函数的时候都需要说明要返回的类型,但是,类中有一种函数比较特殊,函数名与类名相同,且没有返回值类型,这中函数称为构造函数,它承担着类初始化的工作,非常重要。常用的构造函数有默认构造函数、一般构造函数、拷贝构造函数、转换构造函数、移动构造函数。原创 2022-10-16 22:19:08 · 18516 阅读 · 2 评论 -
C/C++ 关键字 static 详细解析
static关键字是一个修饰符,根const类似,被它修饰的变量和函数分别被称为静态变量和静态函数,根据修饰的对象的不同,static表现出来的作用也不同。其实只记住一条就够了,静态成员变量=全局变量。 想到这一点之后,前边的条条框框都好理解了。原创 2022-10-13 10:36:06 · 444 阅读 · 1 评论 -
C/C++ FILE 和 fstream 用法详解
FILE 是C语言自带的文件操作结构体, fstream 是C++的文件操作类,两者使用都比较常见,且用法比较类似,再次记录。原创 2022-09-25 20:01:26 · 5433 阅读 · 0 评论 -
C/C++:printf 函数格式化输出,用法详细记录
printf ( print format )函数是接触C/C++之后接触的第一个函数,它的功能除了输出hello world外,更重要的是进行格式化输出,比如输出整数的%d,输出小数的%f,%lf 等等。printf 格式化输出的完整格式为:`% [flag] [width] [.precision] type`其中,常用等级为 `type > [.precision] > [flag] > [width]`注意,实际使用的时候不带 [ ] .原创 2022-09-25 09:25:26 · 8616 阅读 · 0 评论 -
C++ 返回代码运行时长
C/C++ 代码运行时间计算 #include原创 2022-09-23 15:41:58 · 355 阅读 · 0 评论 -
C++数据结构:string的基本用法
C++ string基本用法总结原创 2022-08-27 21:56:29 · 1867 阅读 · 0 评论 -
error: array type ‘char [x]‘ is not assignable
: error: array type 'char [n]' is not assignable,不能对C语言数组进行赋值原创 2022-08-27 20:25:40 · 9120 阅读 · 0 评论 -
C++报错:warning: ‘delete[]‘ applied to a pointer that was allocated with ‘new‘; did you mean ‘delete‘?
warning: 'delete' applied to a pointer that was allocated with 'new[]'; did you mean 'delete[]'?原创 2022-08-27 20:06:07 · 596 阅读 · 0 评论 -
Opencv报错:(parameter or structure field))Unrecognized or unsupported array type in functon ‘cvGetMat‘
error: (-206:Bad flag (parameter or structure field)) Unrecognized or unsupported array type in function 'cvGetMat'原创 2022-07-25 17:28:24 · 1933 阅读 · 0 评论 -
socket通信中select函数用法
select用法转载 2022-07-21 10:49:27 · 166 阅读 · 0 评论 -
C++ 多态构成条件
多态(Polymorphism),从字面意思理解,就是一种事物具有多种状态,在C++里表示函数具有多种表达。多态一般出现在向上转型里边,也就是将派生类对象赋值给基类对象。我们直接看一个例子,就能明白为什么会出现多态。......原创 2022-07-07 15:48:18 · 637 阅读 · 0 评论 -
C++ 引用的用法总结
C++引用总结什么是引用?当形参时的作用,与指针的区别,与const结合原创 2022-07-07 09:42:42 · 3967 阅读 · 0 评论 -
C++ const用法总结
`const`是constant的简写,是C++中极为常见且重要的关键字,主要功能是设置某些参数不可修改,今天对其用法进行总结记录。原创 2022-07-06 17:12:08 · 7508 阅读 · 0 评论 -
C++ this指针总结
this指针存在的原因,以及使用它的注意事项原创 2022-07-06 13:28:39 · 268 阅读 · 0 评论 -
C++ 构造函数
什么是构造函数构造函数的注意事项原创 2022-07-06 09:53:17 · 208 阅读 · 0 评论 -
C++ 函数重载
① 函数名必须相同;②输入形参必须有区别(类型、数量、顺序);③输出类型不作为函数重载的依据;④函数重载要尽可能包含要用到的类型,否则可能产生二义性;换句话讲,就是尽量不要输入没有重载的形参类型;⑤函数重载只是方便我们的程序开发,对计算机来说依然是多个不同的函数。...原创 2022-07-06 08:50:47 · 132 阅读 · 0 评论 -
C++ 使用函数默认参数的注意事项
默认参数的注意事项原创 2022-07-05 17:35:52 · 342 阅读 · 0 评论 -
C++ 内联函数的作用
内联函数的作用是啥原创 2022-07-05 16:26:42 · 2878 阅读 · 0 评论