
c++语言
文章平均质量分 69
进击ing小白
这个作者很懒,什么都没留下…
展开
-
Qt 动画框架类以及在项目优化中使用
待续。原创 2025-03-21 16:55:12 · 92 阅读 · 0 评论 -
无锁编程在项目优化中的应用
待续。原创 2025-03-21 16:52:05 · 316 阅读 · 0 评论 -
提升客户端程序性策略
在停车项目中随着过车的增加,程序运行时间的累积,程序可能会越来越慢,降低过车效率,针对此进行一些优化,先打个标记待后续空闲进行记录。原创 2025-03-05 23:10:15 · 73 阅读 · 0 评论 -
C++ 内存序在多线程中的使用
C++11中的内存序(Memory Order)为开发者提供了工具,帮助控制多线程程序中不同线程之间的内存操作顺序,从而避免由于编译器或处理器优化导致的指令重排问题。这些内存序提供了从无序到严格一致的内存访问保证,让程序员能够在性能和安全性之间进行权衡。本文将详细介绍C++中的六种内存序,并通过实际例子补充说明它们的应用场景。原创 2025-03-05 23:06:05 · 1096 阅读 · 0 评论 -
CRTP在项目优化中的使用
CRTP 全称,即奇异递归模板模式。是一种 C++ 编程技巧,使用模板类和继承的组合来实现。该模式的关键思想是:在模板类的定义中,模板参数是当前类自身(通常是派生类)。这个技巧通常用于实现编译时多态,优化性能,C++中std:: enable_shared_from_this 也是一种CRTP的实践。。原创 2025-02-19 21:45:26 · 826 阅读 · 0 评论 -
内存池和对象的使用
Boost.Pool 包含一些用于管理内存的类。虽然 C++ 程序通常用于 new 动态分配内存,但内存提供方式的详细信息取决于标准库的实现和操作系统。例如,使用 Boost.Pool,您可以加速内存管理,从而更快地为程序提供内存。Boost.Pool 不会更改操作系统的行为 new。Boost.Pool 会首先从操作系统请求托管内存 - 例如,使用 new .从外部来看,您的程序已经分配了内存,但在内部,内存还不是必需的,而是交给 Boost.Pool 来管理它。原创 2025-02-14 15:31:45 · 959 阅读 · 0 评论 -
轻量级TinyXml2的应用
TinyXML2 是 simple、small、efficient 的基于DOM (Document Object Model,文档对象模型) 的开源 C++ XML文件解析库,可以很方便地应用到现有的项目中。目前,TinyXML1 开发已经停止,所有的开发都转移到了 TinyXML2。TinyXML2 适用于大部分 C/C++ 的项目,经得住考验,是最好的选择。较 TinyXML1 而言,TinyXML2 化繁为简,使用时,而 TinyXML1 需要包含 6 个文件,一般生成静态链接库供项目使用。原创 2025-02-13 19:50:03 · 331 阅读 · 0 评论 -
Boost中线程的使用
boost::thread_group 实际利用list<thread>管理一组线程,方便批量管理;不是线程池,没有线程池的自动伸缩等功能。threadpool是基于[boost]库实现的一个线程池子库 .与std的条件变量一样会有虚假唤醒问题,同样需要谓词处理。原创 2024-07-17 22:50:33 · 1138 阅读 · 0 评论 -
C++并发 多线程
ratio 类表示每个时钟周期的秒数,其中第一个模板参数 Num代表分子,Denom代表分母,该分母值默认为 1,因此,ratio代表的是一个分子除以分母的数值,比如:ratio<2> 代表一个时钟周期是 2 秒,ratio<60 > 代表一分钟,ratio<60*60 > 代表一个小时,ratio<60*60*24 > 代表一天。,另外如果线程对象在调用join()函数之前,就已经做完了自己的事情(在构造时传入的方法执行完毕),那么这个函数不会阻塞线程环境,线程环境正常执行。在某些特定情况下,某些函数。原创 2024-06-27 21:56:34 · 1509 阅读 · 0 评论 -
C++四种类型转换
当进行上行转换,也就是把子类的指针或引用转换成父类表示,这种转换是安全的;当进行下行转换,也就是把父类的指针或引用转换成子类表示,这种转换是不安全的,也需要程序员来保证;允许将任何指针类型转换为其它的指针类型;特别是开辟了系统全局的内存空间,需要在多个应用程序之间使用时,需要彼此共享,传递这个内存空间的指针时,就可以将指针转换成整数值,得到以后,再将整数值转换成指针,进行对应的操作。2.用于基本数据类型之间的转换,如把int转换成char,把int转换成enum等等,这种转换的安全性需要程序员来保证;原创 2025-02-09 11:54:52 · 339 阅读 · 0 评论 -
Boost中几种有趣容器的应用
需要注意的是circular_buffer的迭代器不是循环的,指向或超过end()的迭代器也会引发断言异常,前面所说的到达末尾时自动循环使用容器的另一端空间指的是当达到容器的容量上限,继续push_back方法压入元素时,原来begin处的元素就会被覆盖,原来begin + 1处的元素成为新的begin。C++的STL的map和mutil_map可以把key映射到value,但是这种映射关系是单向的,然而实际项目中有一些场景,双射容器更合适。它实现了一个通用、与标准库的容器一致的接口,并且具有与。原创 2025-02-09 11:35:44 · 749 阅读 · 0 评论 -
c++可变参数和折叠表达式详解
在C++编程中,处理不确定数量的参数是一个常见的需求。为了支持这种需求,C标准库提供了<stdarg.h>头文件,其中定义了一组宏和类型,用于处理不定参数函数。C++继承了C语言的可变参数机制,使用了stdarg.h提供的宏来处理不确定数量的参数。其原理基于栈的推入和弹出过程,不需要明确参数数量。此外,C++提供了可变参数机制,让我们能够创建接收任意数量参数的函数。这一特性在许多实际应用中非常有用,比如日志记录、函数重载等。<stdarg.h>原创 2025-02-02 23:54:46 · 1499 阅读 · 0 评论 -
C++中提高代码稳定性和兼容性的语法
C++11中提升编程代码稳定性和兼容性的一些语法介绍和使用举例。原创 2025-02-01 22:18:10 · 746 阅读 · 0 评论 -
C++中提高代码易用性的语法
基于范围的for循环中,不需要再传递容器的两端,循环会自动以容器为范围展开,并且循环中也屏蔽掉了迭代器的遍历细节,直接抽取容器中的元素进行运算,使用这种方式进行循环遍历会让编码和维护变得更加简便。} // 没有参数, 参数列表省略不写。在遍历关联型容器时也会出现同样的问题,基于范围的for循环中,虽然可以得到一个std::pair引用,但是我们是不能修改里边的first值的,也就是key值。很多时候,lambda 表达式的返回值是非常明显的,因此在 C++11 中允许省略 lambda 表达式的返回值。原创 2025-02-01 17:44:32 · 1035 阅读 · 0 评论 -
std::call_once的原理及使用
是 C++11 中引入的一个模版函数,实现多线程环境下实现单次调用,避免重复执行同一操作。原创 2025-02-01 16:22:08 · 617 阅读 · 0 评论 -
项目中enable_shared_from_this的使用
std::enable_shared_from_this是在内部保存一个对 this 的弱引用(例如 std::weak_ptr)。当 std::shared_ptr 的构造函数检测到无歧义且可访问的 enable_shared_from_this 基类时,如果内部存储的弱引用未被生存的 std::shared_ptr 占有,就会赋值新建的 std::shared_ptr。enable_shared_from_this 是个CRTP模板类,提供了一个可以返回一个shared_ptr的接口。原创 2025-01-27 20:37:08 · 129 阅读 · 0 评论 -
Google Breakpad在项目中应用
Google Breakpad在项目中dump应用。原创 2024-11-15 16:53:22 · 222 阅读 · 0 评论 -
STL源码剖析阅读笔记--线性容器(1)
好久好久么写了,看的书不少却很难落实记录下来,难得浮生半日闲,实验室项目暂告一段,最近阿里和中行面试终于基本完了,终于可以再捧起侯捷大神的STL,Mark一下,督促自己多书多记录,希望2019自己能在项目,毕设和找工作之间游刃有余。目录语法两则:语法: 1、临时对象的产生—一种无名对象,不在程序预期之下(passer by value会产生临时对象,负担)2、静态...原创 2019-05-12 20:57:44 · 1712 阅读 · 2 评论 -
c++ 的标准I/O 和一个基于文件存储的学生信息管理系统
板子出问题了,今晚又要通宵了,哎,工程重新综合完不知道啥时候去了,难受啊,还是总结一下前段时间看的标准I/O吧。顺便写了个基于文件保存信息的学生管理系统,加深一下对文件I/O的理解,还是忍不住吐槽配古董级电脑的综合工程速度。。。目录I/O三个独立的头文件:iostream fstream sstreami/o流基本操作:<sstream>的应用,类型转换str...原创 2019-03-10 01:52:14 · 1003 阅读 · 0 评论