C++
C++基础
不老猿
码农永不为奴,Lok’TarOgar!
展开
-
IplImage 转qt QPixmap
`三维图像数组转 IplImage; IplImage转qt 位图原创 2022-09-23 15:36:18 · 352 阅读 · 0 评论 -
基于streambuf的无缓冲的socketbuffer
基于streambuf的tcp读写缓冲区原创 2022-09-22 16:13:01 · 296 阅读 · 0 评论 -
std::thread线程封装,延时启动线程、挂起与恢复
代码已经测试,可以直接使用。原创 2022-08-04 10:04:28 · 2162 阅读 · 0 评论 -
解决模板函数不能特化问题
使用std::enable_if解决模板函数不能特化问题。原创 2022-07-26 18:29:49 · 514 阅读 · 0 评论 -
STL 返回类型后置
由于函数的入参都是模板参数,所以导致无法知道返回类型,所以使用返回类型后置来进行推导。原创 2022-07-26 18:24:30 · 127 阅读 · 0 评论 -
std::function 高级用法
使用C++11stdfunction封装打包所有可调用对象及调用函数,使在某些场景下能够对调用行为泛化和延迟处理。原创 2022-07-26 18:01:19 · 335 阅读 · 0 评论 -
虚拟麦克风变声
实现微信、腾讯会议等语音电话变声。原创 2022-07-22 16:15:26 · 2723 阅读 · 0 评论 -
将可调用对象转为函数指针,兼容C的回调函数
习惯了C++的面向对象,但是写代码中经常用到回调函数的地方,回调函数在面向对象代码结构中实在很扎眼,破坏封装,所以想了个办法来兼容回调。operator()函数签名与要使用的回调函数保持一致。...原创 2022-07-21 14:14:25 · 505 阅读 · 0 评论 -
VS 查看堆中数据
VS 查看堆中数据原创 2021-12-03 10:42:11 · 914 阅读 · 2 评论 -
STL 容器构造堆结构 使用堆结构构造资源池
STL 容器构造堆结构 使用堆结构构造资源池class CTargetIdPool{public: CTargetIdPool(); ~CTargetIdPool(); bool IsPoolEmpty(); int GetTargetIdFromHeap(); void SetTargetIdToHeap(int id);private: std::vector<int> m_vecId = { 1,2,3,4,5,6,7,8,9原创 2021-10-21 10:48:47 · 116 阅读 · 0 评论 -
QT使用给定点绘制闭合曲线
QT使用给定点绘制闭合曲线 QPainterPath path; QVector<QPointF> vecPoint; QPolygonF poly(vecPoint); path.addPolygon(poly); paint->drawPath(path);原创 2021-10-21 09:22:45 · 875 阅读 · 0 评论 -
QT QAudioOutput+QIODevice 音频流实时播放
头文件//音频流播放线程#include <QThread>#include <QAudio>class QBuffer;class QByteArray;class QAudioOutput;class QIODevice;class CAudioMonitorThread : public QThread{ Q_OBJECTpublic: CAudioMonitorThread(QObject *parent = nullptr);原创 2021-10-18 11:22:16 · 5968 阅读 · 2 评论 -
C++灵巧计数器技术
阅读《large_scale_cpp_software_design》一书中灵巧计数器技术。该技术主要是针对非局部静态对象的静态对象成员的初始化。我们知道,非局部静态变量(即全局)是在程序启动前初始化,也就是在程序启动到进入main()之前,而局部静态对象,例如函数中的静态变量,对象的静态成员则是在使用时初始化。也就是说在程序启动时,非局部的静态对象初始化时并没有对其静态成员对象进行初始化。所以灵巧原创 2016-01-08 15:31:18 · 1536 阅读 · 0 评论