C++基础
文章平均质量分 81
qq_18145605
这个作者很懒,什么都没留下…
展开
-
c++ 智能指针使用注意事项及解决方案
对智能指针的总结原创 2024-06-13 17:39:47 · 608 阅读 · 0 评论 -
使用log4cplus时遇到的链接错误:无法解析的外部符号 “public: static class log4cplus::Logger __cdecl log4cplus::Logger::get
#include "stdafx.h"#include <log4cplus/logger.h>#include <log4cplus/loggingmacros.h>#include <log4cplus/configurator.h>#include <log4cplus/fileappender.h> #include ...原创 2021-05-17 23:48:59 · 909 阅读 · 0 评论 -
Reactor 设计模式
网络IO,会涉及到两个系统对象,一个是用户控件调用IO的进程或者线程,另外一个是内核控件的内核系统,比如发生IO操作read时,它会经历两个阶段:等待数据准备就绪将数据从内核拷贝到进程或者线程因为在以上两个阶段上各有不同的情况,所以出现了多种网络IO模型。一、概念参考:https://www.jianshu.com/p/458e4b276607什么是阻塞和非阻塞?阻塞和非阻塞是针对于IO操作的就绪状态;阻塞和非阻塞是针对于进程在访问数据时,根据IO操作的就绪状态而采取的不同方式,简单原创 2021-08-17 19:22:07 · 474 阅读 · 0 评论 -
环形缓存区ringbuffer
目录概念原理代码及测试案列概念环形缓冲器(ringr buffer),也称作圆形队列(circular queue),循环缓冲区(cyclic buffer),圆形缓冲区(circula buffer),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。原理设计一种结构,包含一个标识读位置、写位置、已存储数据量、最大存储空间、内存空间写入数据时,判断内存中是否有足够的空间用来写入,没有则写入数据失败,有则写入数据并且移动写标识,并处理已存储数据量变量读取数据时,判断内存中原创 2021-08-13 18:22:04 · 418 阅读 · 0 评论 -
多线程编程
目录概念线程相关函数说明头文件创建线程终止线程执行pthread_exit()pthread_exit()和return结束线程的区别pthread_cancel()pthread_setcancelstate()函数pthread_setcanceltype()函数获取线程函数的返回值线程同步解决方案互斥锁1) 互斥锁的初始化2) 互斥锁的“加锁”和“解锁”3) 互斥锁的销毁信号量1) 初始化信号量2) 操作信号量的函数条件变量1) 初始化条件变量2) 阻塞当前线程,等待条件成立3) 解除线程的“阻塞”状原创 2021-08-06 14:41:15 · 1202 阅读 · 0 评论 -
排序算法总结
目录算法分类算法的相关概念算法的复杂度比较类排序交换排序冒泡排序算法描述(对n个数进行从小到大排序, 其中seq为第几次遍历序列):算法的c实现:适用场景代码优化快速排序算法描述算法的c实现:适用场景插入排序简单插入排序算法描述算法的c实现适用场景希尔排序算法描述算法的c实现适用场景选择排序简单选择排序算法描述算法的c实现适用场景*堆排序*算法描述算法的c实现适用场景归并排序算法描述二路归并排序算法描述算法的c实现适用场景非比较类排序计数排序算法描述算法的c实现适用场景桶排序算法描述算法的c实现适用场景基数原创 2021-08-05 12:41:29 · 918 阅读 · 0 评论 -
第十篇 进程
进程结构一般由3部分组成:代码段、数据段和堆栈段代码段:用来存放程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段;数据段:用于存放程序的全局变量、常量和静态变量;堆栈段:栈–用于函数调用,它存放着函数的参数、函数内部定义的局部变量还包括了进程控制块(Process Control Block, PCB)一般程序转换为进程分以下几个步骤:(1)内核...原创 2021-08-05 10:41:04 · 87 阅读 · 0 评论 -
C++ 基础知识点
第一章课后练习题一.基础题(必做)请说出C++语言的优点,缺点,和主要用途?优点强大的抽象封装能力:这让C++语言具备了强大的开发工程能力,封装的同时让C++最大程度的保留了高性能;高性能:运行快,快并且占用资源少一直是C++语言的追求;低功耗:特别适合在各种微型的嵌入式设备中运行高效的程序;缺点语法相对复杂,细节比较多,学习曲线比较陡;需要一些好的规范和范式,否则代码很难维护;主要用途大型桌面应用程序(如Google Chrome和Microsoft Offic原创 2021-08-05 10:11:58 · 851 阅读 · 0 评论 -
Linux守护进程(Daemon)介绍与实现
1. 守护进程简介守护进程(deamon)是生存期长的一种进程。它们常常在系统引导装入时启动(如果需要守护进程随系统自启动,需要在/etc/init.d目录下放置响应的启动脚本,或者利用systemctl来控制,还有一些其他方法如supervisor等),仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。 从daemon的启动和管理方式区分,可以将daemon分为两大类:可独立启动的daemon(stand alone)和由一个超级daemon(super daemon)来统一管理原创 2021-08-05 09:58:53 · 1845 阅读 · 0 评论 -
c++ mysql 开发
目录c++库函数原型c++库libmysql函数原型原创 2021-07-23 14:38:32 · 1334 阅读 · 0 评论 -
C/C++ 头文件以及库的搜索路径
目录头文件1. #include “headfile.h”2. #include 头文件1. #include “headfile.h”搜索顺序为:①先搜索当前目录②然后搜索-I指定的目录③再搜索gcc的环境变量CPLUS_INCLUDE_PATH(C程序使用的是C_INCLUDE_PATH)④最后搜索gcc的内定目录/usr/include/usr/local/include/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include各目录存在相同文件时原创 2021-07-23 14:14:01 · 1868 阅读 · 0 评论 -
centos mysql安装mysql-devel报错
问题执行yum install mysql-devel,安装开发环境时报错[root@VM-0-17-centos software]# yum install mysql-develLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile * centos-sclo-rh: mirrors.163.com * centos-sclo-sclo: mirrors.163.comResol原创 2021-07-23 11:33:17 · 3751 阅读 · 1 评论 -
c语言中float、double、long double在内存中存储方式
float:浮点型变量在计算机内存中占用4个字节(4 Byte),即32-bit,一个浮点数由2部分组成:底数m 和 指数e;底数部分:使用2进制数来表示此浮点数的实际值;指数部分:占用8bit即1byte空间来表示,表示数值范围:0-255;后面介绍 用于存储科学计数法中的指数部分,并且采用移位存储方式;浮点数据就是按下表的格式存储在4个字节中: SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMMS部分: 表示浮点数正负,1为负数,0为正数。一位即可E部分:原创 2021-02-24 21:55:12 · 2277 阅读 · 1 评论 -
自己编写的动态库,被加载时造成循环依赖
现象:生成的动态库,编译链接都没问题,但是在加载时,即不报错,只是卡在加载动态库的地方,过段时间后就造成程序退出分析原因:在加载的时候,动态库中会有循环依赖,一直到栈空间满才造成程序退出思路历程:刚开始的时候还不知道是动态库代码上有循环依赖,也不清楚这是什么原因就怀疑环境问题,然后把代码改到vs2015上,最后还是一样的现象然后怀疑自己所用vcpkg下载的开源代码库有问题,然后自己从github上把所有需要加载的动态库代码下载下来,自己编译,然后依赖,发现还是同样的现象最后没办法,拆分代码,.原创 2021-05-18 10:57:55 · 876 阅读 · 0 评论 -
“undefined reference to“ 问题解决方法
"undefined reference to" 问题解决方法 aiwoziji13 2012-03-07 20:13:45 ...转载 2021-04-18 10:30:18 · 2855 阅读 · 0 评论 -
C++ 11新特性
c++返回值类型后置template <typename T, typename U>decltype((*(T*)0) + (*(U*)0)) add(T t, U u){ return t + u;}虽然成功地使用 decltype 完成了返回值的推导,但写法过于晦涩,会大大增加 decltype 在返回值类型推导上的使用难度并降低代码的可读性.在 C++11 中增加了返回类型后置(trailing-return-type,又称跟踪返回类型)语法,将 decltype原创 2021-02-23 14:25:50 · 262 阅读 · 0 评论 -
c++11 类型推导
auto与decltype都是在编译时期进行自动类型的推导auto类型推导auto关键字基本的使用语法:auto name = value;auto的高级语法1. int x = 0;2. auto *p1 = &x; //p1 为 int *,auto 推导为 int3. auto p2 = &x; //p2 为 int*,auto 推导为 int*4. auto &r1 = x; //r1 为 int&,auto 推导为 int5.原创 2021-02-22 17:54:52 · 170 阅读 · 0 评论 -
八大排序
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2021-01-05 17:52:01 · 112 阅读 · 0 评论 -
关联(Association), 聚合(Aggregation), 组合(Composition)解析
描述对象的附属[也就是依赖]关系: 关联<聚合<组合, 依赖关系是逐渐加强的关联关联(association)是一种很宽泛的关系,它表示一个对象a用到了另一个对象b,调用了后者的成员函数。从代码形式上看,a持有b的指针或引用,但是b的生命期不能由a单独控制。例如:class A{private:B* itsB;};聚合聚合(aggregation)是一种特...原创 2019-03-10 08:57:37 · 3102 阅读 · 0 评论