![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 98
尘中远
C++/QT爱好者,python,matlab打辅助,大规模大数据处理服务,工业软件爱好者,熟悉机械工程&设备状态监测&动力工程及工程热物理,熟练操作三维软件,梦想能自己搞一个,熟悉数字信号处理,认为现在的信号处理软件都比较low,打算自己搞一个,精通工程热物理,认为现在的物性计算软件也很low,也想自己搞一个,都是业余时间搞,目前工作都是针对百万并发高性能服务器程序,觉得比较无技术含量
展开
-
基于CMake的大型C++工程组织
一个大型工程,并不会单单只包括应用自身,还有此程序抽象出来的库,这些库除了自身模块化意外,还有可能是提供给第三方用户进行插件化的开发使用的,同时工程还包含了很多第三方库。原创 2023-12-31 21:51:50 · 1434 阅读 · 0 评论 -
记录一次从MinGw转到MSVC编译器的错误经历
MinGW和MSVC兼容度并不那么好,由于中文的问题,sa一直使用的是MinGW来进行编译,但说实话,在windows上MinGW编译出来的程序在体积和速度上和MSVC还是有点差距的,因此,sa最终版打算使用msvc编译器。于是,前几天用Qt5.9 MSVC2015版进行了一下编译结果发现了许多问题,有语法的问题,也有非常讨厌的链接问题。下面是一些记录:MinGW比MSVC宽松很多,类似...原创 2018-11-14 21:45:43 · 6973 阅读 · 0 评论 -
Modern C++中lambda表达式的陷阱
Modern C++中lambda表达式的陷阱lambda表达式给stl带来了无与伦比的便利,尤其对像std::for_each这种使用函数指针的场合更是方便,但却是写的爽快,维护的蛋疼,前几天还遇到了一个陷阱,这里特意记录一下陷阱1:默认引用捕获可能带来的悬挂引用问题在捕获参数时喜欢使用[&]来一次捕获包括this在内的所有内容,此方法非常方便,但在遇到局部变量时,引用捕...原创 2018-04-30 15:34:14 · 7044 阅读 · 0 评论 -
Qt使用多线程的一些心得——2.继承QObject的多线程使用方法
现在Qt官方并不是很推荐继承QThread来实现多线程方法,而是极力推崇继承QObject的方法来实现,当然用哪个方法实现要视情况而定,别弄错了就行,估计Qt如此推崇继承QObject的方法可能是QThread太容易用错的原因。这里介绍了如何使用继承QObject并moveToThread方法实现多线程原创 2017-05-05 11:39:15 · 44556 阅读 · 33 评论 -
C++11的模板类型判断——std::is_same和std::decay
C++11的模板类型判断——std::is_same和std::decay问题提出:有一个模板函数,函数在处理int型和double型时需要进行特殊的处理,那么怎么在编译期知道传入的参数的数据类型是int型还是double型呢? 如:#include <iostream>template<typename TYPE>void typeCheck(TYPE data){ //do so原创 2016-10-14 08:34:20 · 68501 阅读 · 2 评论 -
有符号无符号数据类型溢出测试记录
今天遇到一个比较基础问题:若有符号位的数据类型溢出会发生什么后果? 以前记得微机原理上说数据有原码、反码、补码3种表示形式,计算机通常的处理都是按照补码数据进行的,那么在一个数据类型的最大值溢出后会发生什么情况呢.........原创 2016-09-28 13:54:35 · 1412 阅读 · 0 评论 -
C++最小二乘法拟合-(线性拟合和多项式拟合)
在进行曲线拟合时用的最多的是最小二乘法,其中以一元函数(线性)和多元函数(多项式)居多,本文介绍的这个类,用C++封装了专门用于进行多项式拟合和线性拟合的方法,可以根据用户输入的阶次进行多项式拟合,算法来自于网上,和GSL的拟合算法对比过,没有问题。此类在拟合完后还能计算拟合之后的误差:SSE(剩余平方和),SSR(回归平方和),RMSE(均方根误差),R-square(确定系数)。原创 2014-03-23 20:38:13 · 58224 阅读 · 28 评论 -
qt超强绘图控件qwt - 安装及配置
qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等,目前已经应用到许多工业领域,同时qwt也致力于3d的开发。但许多时候,qwt的原创 2013-09-25 11:08:09 · 55085 阅读 · 53 评论 -
Lambda表达式:代替std::bind的绝佳方法
Lambda表达式:代替std::bind的绝佳方法lambda表达式使得函数指针有了更灵活的使用方法,但是有些时候,对于大型的函数,还是不建议用lambda表达式,谁也不想在函数里又看到一段长长的函数。Lambda表达式的用法在:C++11 lambda表达式在for_each和transform算法下的使用已经进行了介绍。另外我在另一篇文章利用C++11的function和bind功能原创 2016-04-18 17:32:46 · 6667 阅读 · 1 评论 -
C++11 lambda表达式在for_each和transform算法下的使用
以前,在lambda表达式没有进入标准的时候,对容器的遍历等涉及到使用函数指针的情况,一般人会懒得使用std::for_each,或std::transform,也许只是一个短短的几句话,却要单独写个函数,或函数对象,写的代码反而不如自己用for循环来的快。但是,C++11引入了lambda表达式后,一切都变的简单了!1.lambda表达式lambda表达式是一个匿名函原创 2015-02-08 13:52:43 · 15147 阅读 · 2 评论 -
绘图控件第五讲——绘制动态曲线
在工控监测领域,经常需要动态绘制曲线,观察曲线的变化趋势,绘制波形图,绘制频谱等。在前面4讲中介绍了VC(MFC)经常用的TeeChart控件和Hight-Speed Chart Ctrl,这两个都是MFC绘图控件的经典(另外,在Qt中还有QwtPlot和QCustomPlot两大神器)。许多人问如何绘制动态变化的曲线,为此专门写下这篇文章。C++ GUI 绘图控件目录原创 2014-03-04 21:48:21 · 75938 阅读 · 56 评论 -
利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数
在使用Qt的树形视图和表格视图QTableView和QTreeView时,经常需要遍历所有条目,每种功能都写一个遍历函数既麻烦又不符合编程最简原则,因此,写一个通用的遍历函数是很必要的(类似于std::for_each),对于遍历时实现的功能不一样,可以通过函数指针来代替需要实现的功能。在讲这个之前,需要了解std::function和std::bind,具体可以自行谷歌。原创 2014-03-12 15:29:52 · 11214 阅读 · 2 评论 -
C++标准注释原则 - 基于doxygen的C++注释
标注总述下载国外的源代码,往往能看到附带的说明文档,文档都有详细的说明,大部分文档都可以通过doxygen这个跨平台软件生成,doxygen并不能随便读取你的C++的注释,必须按照一定的规则才能生成,所以在编写代码时,一定要按照标准写注释,否则会为以后带来许多麻烦下面介绍C++的标注写法,c++不推荐c语言式的/* */风格注释,这里,除了文件头使用这种注释外其余到使用C++风格的注释。原创 2013-05-08 21:30:56 · 27606 阅读 · 3 评论 -
看懂Qt源代码-Qt源码的对象数据存储
第一次看Qt源代码的人都会被其代码所迷惑,经常会看到代码中的d_ptr成员、d_func(函数)和Q_DECLARE_PRIVATE等奇怪的宏,总是让人一头雾水,下面这篇文章转自http://www.qkevin.com/archives/31,它很好的向我们介绍了Qt源代码的编写习惯,为我们看Qt源码打下基础:对象数据存储前言,为什么先说这个? 我们知道,在C转载 2014-02-15 22:05:51 · 3918 阅读 · 3 评论