C/C++
文章平均质量分 69
shaderdx
证券市场的资本配置功能是指通过证券价格引导资本的流动从而实现资本合理配置的功能。在证券市场上,证券价格的高低是由该证券所能提供的预期报酬率的高低来决定的。
展开
-
Linux下libusb库的安装与使用
一、下载libusb下载网址:http://www.libusb.org/这里我选择的是下载:libusb-1.0.24二、安装libusb解压后libusb-1.0.24,得到的是源代码。$ tar -jxvf libusb-1.0.24.tar.bz2$ cd libusb-1.0.24$ ./configure --prefix=/usr/local/libusb-1.0.24$ make$ make install三、可能遇到的问题1.udev support原创 2022-01-13 16:01:06 · 4710 阅读 · 2 评论 -
C++中的Lambda表达式
从C++11开始,一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable e原创 2021-10-22 13:41:56 · 360 阅读 · 0 评论 -
QCustomPlot绘图实现光标滑过曲线显示点的坐标
有两种方法可实现这个效果:1.通过关联QCustomPlot的mouseMove信号槽事件实现;2.通过继承QCustomPlot类,重写mouseMove虚函数实现;这个两个方法都是获取鼠标位置,然后计算出点的坐标值,利用QToolTip显示点坐标的方法。方向弄清楚了,现在我们去实现出来,go……一、信号槽方法1、首先建立一个鼠标移动时间响应函数:private slots: void MyMouseMoveEvent(QMouseEvent *event);2、将原创 2021-07-16 10:55:00 · 4056 阅读 · 3 评论 -
Linux 环境下安装 gcc 详细过程 以及安装 glibc
1、了解一下gcc 目前,GCC可以用来编译C / C++、FORTRAN、Java、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。 在安装之前,系统必须有 cc 或者 gcc 的编译器,如果没有,就不能安装更高版本的 gcc 了,如果是这种情况,可以在网上找一个与你系统相适应的如 RPM 等二进制形式的 GCC 软件包来安装使用。 本文介绍的是以源代码安装 gcc 的过程,我安装的是在一个单独的目录下,以后想卸载的话,直接删除该目录就行。2、需要下载的安装包2.原创 2020-12-08 11:37:07 · 19547 阅读 · 6 评论 -
QT的绘图库 QCustomPlot 用法介绍 以及 使用 OpenGL 开启渲染
一、概述先简单介绍一下,绘制实时数据波形图,我们一般使用到的库有qwt、qcustomplot以及官方的QtCharts模块。qwt这个库安装比较麻烦。不过功能比较全使用的人比较多。 qcustomplot很精简小巧,就一个.h .cpp文件,但是功能也很强大健全。 QtCharts这个模块以前是收费使用的,现在已经免费了,官方出品。今天的主角是qcustomplot,使用的是最新的版本:下载地址:https://www.qcustomplot.com/QCustomPlot 是一.原创 2020-09-14 15:44:07 · 12712 阅读 · 7 评论 -
常用几大排序算法实现
本文主要罗列总结几大常用排序算法。1、冒泡法排序3种实现:2、直接插入法排序3种实现:3、希尔排序4、直接选择排序5、归并排序6、快速排序7、堆排序8、基数排序9、...原创 2020-08-27 14:27:28 · 339 阅读 · 0 评论 -
C++17 C17 中的新增功能std::filesystem
本文主要介绍C++17 / C17中的filesystem中的一些常用方法。C17中新增了filesystem功能,使得跨平台文件系统 操作使用便方便简易。一、windows环境下使用Visual Studio开发必须要vs2019才支持C++17新特性。VS2019默认不使用C17新特性,如需使用要手动打开此功能。二、linux环境下使用g++编译器,gcc编译器必须要升级到g++ 10.0.1版本才支持C++17的新特性。三、使用详情包含相关头文件...原创 2020-08-26 11:16:11 · 19859 阅读 · 1 评论 -
fstream的使用详解
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"WriteStdout"<<’\n’;就表示把字符串"WriteStdout"和换行字符(’...原创 2020-08-26 10:43:54 · 6803 阅读 · 0 评论 -
C++常用技术点梳理
一、static与volatile的用法二、new/delete与malloc/free的区别与详解三、C++ static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符)四、POD类型与非POD类型用法区别五、TCP连接的三次握手与四次挥手六、实现memcpy内存拷贝,注意参数检查和内存重叠七、输入数学公式...原创 2020-03-06 23:19:55 · 1775 阅读 · 0 评论 -
socket通信网络模型 ——Epoll、IOCP模型详解以及与select、kqueue等常见模型的区别特点
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 转自原创 2017-11-04 00:03:24 · 3271 阅读 · 0 评论 -
图像处理基本算法(汇总)以及实现
1)将256*256分辨率的图像变为128*128分辨率可以将源图像划分成2*2的子图像块,然后将2*2的子图像块的所有像素颜色均按照F(i,j)的颜色值进行设定,达到降低分辨率的目的。如:F(i,j) F(i,j+1) F(i,j) F(i,j) F(i+1,j) F(i+1,j+1) 变成 F(i,j) F(i,j)原创 2017-09-21 22:21:06 · 20864 阅读 · 1 评论 -
C++编程获取本机网卡信息 本机IP 包括Windows和Linux
ifaddrs结构体定义如下:C代码structifaddrs{structifaddrs*ifa_next;/*Nextiteminlist*/char*ifa_name;/*Nameofinterface*/unsignedin原创 2017-10-31 14:56:46 · 4580 阅读 · 2 评论 -
线程池原理及创建并C++实现
本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有翻译 2016-12-16 15:40:14 · 8870 阅读 · 1 评论 -
通用 Makefile 的编写方法以及多目录 makefile 写法
1 make分中预定义变量表$* 不包含扩展名的目标文件名称。$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。$< 第一个依赖文件的名称。$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。$@ 目标的完整名称。$^ 所有的依赖文件,以空格分开,不包含重复的依赖文件。$% 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标...原创 2018-06-13 16:59:15 · 1548 阅读 · 0 评论 -
Windows下关于多线程类 CSemaphore,CMutex,CCriticalSection,CEvent,信号量CSemaphore的使用介绍
信号量是CSemaphore的对象,该对象的作用是对访问某个共享资源的线程的数目进行控制。CSemaphore类的构造函数原型如下:CSemaphore( LONG lInitialCount /* = 1 */, //计数器的初始值 LONG lMaxCount /* = 1 */, //计数器的最大计数值 LPCTSTR pst原创 2017-08-15 11:21:24 · 560 阅读 · 0 评论 -
C++ Boost库简介
boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。 在文本处理部分,conversion/lexcial_cast类用于“用C+翻译 2014-03-16 23:38:34 · 552 阅读 · 0 评论 -
23种设计模式详解及C++实现
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...原创 2017-11-11 16:09:58 · 4769 阅读 · 1 评论 -
HTTP协议/RTP/RTSP协议/RTMP协议的区别
RTSP、 RTMP、HTTP的共同点、区别共同点:1:RTSP RTMP HTTP都是在应用应用层。2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了。 区别:1:HTTP: 即超文本传送协议(ftp即文件传输协议)。原创 2017-11-04 00:22:32 · 8939 阅读 · 0 评论 -
服务端使用c++实现websocket协议解析及通信
WebSocket 设计出来的目的就是要使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。因为 WebSocket 连接本质上就是一个 TCP 连接,所以在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比较原创 2017-12-30 20:39:04 · 5735 阅读 · 2 评论 -
Linux下安装Mysql数据库开发环境
Linux搭建Mysql数据库开发环境 1.MySQL 概述 【1】MySQL :Oracle旗下的开源关系型数据库,这里选择版本。【2】 MySQL Community Edition:Mysql开源社区版本,目前最新版本:8.0.11MySQL Community Edition is the freely downloadable version of the world’s most po...原创 2018-05-18 11:40:26 · 847 阅读 · 0 评论 -
C++的4种智能指针剖析使用
1. 智能指针背后的设计思想我们先来看一个简单的例子:void remodel(std::string & str){ std::string * ps = new std::string(str); ... if (weird_thing()) { return; } str = *ps; del...原创 2018-11-15 14:31:43 · 529 阅读 · 0 评论 -
VC连接HTTP服务器 & MFC 处理 HTTP 请求的基本方法
1.AfxParseURL函数,该函数解析URL字符串并返回服务的类型及组件,包含在 afxinet.h 头文件中。 BOOL AFXAPI AfxParseURL(LPCTSTR pstrURL,DWORD& dwServiceType,CString& strServer,CString& strObject,INTERNET_PORT& nPort); pstrURL :原创 2014-06-04 11:52:18 · 13424 阅读 · 0 评论 -
Linux中常用的操作命令以及vim操作命令和gdb调试命令
Linux简介及Ubuntu安装常见指令系统管理命令打包压缩相关命令关机/重启机器Linux管道Linux软件包管理vim使用用户及用户组管理文件权限管理大牛笔记-www.weixuehao.com来自:http://www.weixuehao.com/archives/25Linux简介及Ubunt原创 2021-01-11 16:35:14 · 3115 阅读 · 5 评论 -
多年来,STL容器的使用总结!
第1条:慎重选择容器类型。标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一“重型”string。非标准的关联容器hash_set、hase_multiset、hash_map和hash_mult原创 2017-02-20 16:31:49 · 1743 阅读 · 0 评论 -
STL 库其中的 std::string用法总结
在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化string类的字符操作:const char &operator[](int翻译 2014-12-25 16:23:26 · 687 阅读 · 0 评论 -
STL里的multimap使用详解
在“使用 库创建关联容器” 一文中,我们讨论了标准库中的 map 关联容器。但那只是 map 容器的一部分。标准库还定义了一个 multimap 容器,它与 map 类似,所不同的是它允许重复键。这个属性使得 multimap 比预想的要更有用:比如在电话簿中相同的人可以有两个以上电话号码,文件系统中可以将多个符号链接映射到相同的物理文件,或DNS服务器可以将几个URLs映射到相同的IP地址翻译 2014-12-23 19:25:26 · 1390 阅读 · 0 评论 -
log4cxx 的编译安装过程和使用
log4cxx是Java社区著名的log4j的c++移植版,用于为C++程序提供日志功能,以便开发者对目标程序进行调试和审计,log4cxx是apache软件基金会的开源项目,基于APR实现跨平台支持。一个良好的日志系统不管是开发、调试和维护,对一个项目来说是多么的重要,我想做过开发的同学深知这点。我用过的日志框架比较少,所以在这里不做与其它日志框架的比较,类似的日志框架还有GLog、boost原创 2014-11-22 18:45:25 · 1755 阅读 · 1 评论 -
“VC在局域网中通过http协议获取公网IP地址”以及“多个服务器节点的测速代码”
RT,经常会有情况,在客户端需要测试到多个服务器节点的速度情况,原理其实很简单,就是向各个节点发一个简单的请求,然后判断应答回来的时间,差值就是响应时间了。其中有许多可以优化的地方:1)并发请求,同时向多个服务器发送请求,这样可以将整个测速的时间缩短到串行测速的几分之一 A)建立n个非阻塞的socket连接到n个服务器 B)将这n个socket加翻译 2014-05-30 16:03:44 · 1331 阅读 · 0 评论 -
A*寻路算法再初探
在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算法。 启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。估价函数:从当前节点移动到目标节点的预估费用;这个估计就是启发式的。在寻路原创 2014-05-29 00:01:50 · 1607 阅读 · 0 评论 -
CRichEditCtrl相关应用技巧收集
在一些交互性很强的程序中,经常需要使用CRichEditCtrl控件,但是如何进行编辑文本,如设置文本字体,颜色,链接,插入图片等等,如何进行操 作,这儿就转载一篇文章,收集一些常见的问题和解决方法,说不定哪一天就用到了。我以前开发过一个聊天程序,调用了一个人开发的CMyRichEdit扩 展,实现了字体,颜色,添加链接,插入图片(QQ控件)等等。m_edit1代表ID为IDC_EDIT1原创 2014-05-02 00:39:26 · 1024 阅读 · 0 评论 -
switch()case:语句的优化
//使用函数指针数组typedef void * (*caseFnType)(void* p1, void * p2);//参数跟返回值,根据实际情况定void fnCase1(void* p1, void * p2){....}void fnCase2(void* p1, void * p2){....}void fnCase3(void翻译 2011-12-24 16:30:07 · 1412 阅读 · 0 评论 -
C语言各种数据类型在系统中占的字节和取值范围
基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值范围:符号属性 长度属性 基本型 所占位数转载 2011-12-27 20:51:59 · 2511 阅读 · 0 评论 -
类结构定义
BOOL CStandardDialog::OnInitDialog(){CDialog::OnInitDialog();DWORD dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);VERIFY((dwStyle & WS_POPUP) != 0);VERIFY((dwStyle & WS_BORDER) == 0);VERIF原创 2012-05-30 11:13:39 · 434 阅读 · 0 评论 -
模态对话框的销毁过程与非模态对话的几种销毁方法
解决 Warning: calling DestroyWindow in CWnd::~CWnd OnDestroy or PostNcDestroy in derived class will not be called 前几天发现自己的程序中使用非模态对话框,Debug版本有警告提示如下:Warning: calling DestroyWindow原创 2014-12-30 14:03:32 · 2875 阅读 · 1 评论 -
智能控件变幻
头文件#pragma once#include // CCfsButtonclass CCfsButton : public CButton{DECLARE_DYNAMIC(CCfsButton)public:CCfsButton();virtual ~CCfsButton();protected:DECL原创 2014-12-31 17:36:26 · 962 阅读 · 0 评论 -
简单邮件系统程序
#include "stdafx.h"#include "SmtpSendEmail.h"//h头文件#pragma once#include #include #include #include#pragma comment(lib, "ws2_32.lib")using namespace std;#ifndef _SM原创 2014-12-15 14:32:04 · 1119 阅读 · 1 评论 -
文档类程序各个类之间的相互访问关系
在实际的应用中,经常需要在多个类之间交换数据,调用另一个类中的函数,框架提供一系列的函数用于多个类之间的交互1.MFC单文档应用程序的类与类之间的访问(1)在所有类中获取App指针:CWin *pApp=AfxGetApp();CXXXApp *pMyApp=(CXXXApp*)pApp;(2)所有类中获取CMainFrame类指针:CM翻译 2017-01-08 23:00:50 · 2370 阅读 · 0 评论 -
Linux 线程操作函数技能总结
线程操作函数总结1、线程创建函数int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void), void *restrict arg); 返回值:若是成功建立线程返回0,否则返回错误的编号 形 参: t原创 2016-01-07 14:16:53 · 2709 阅读 · 0 评论 -
"undefined reference to" 多种可能出现的问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(原创 2015-11-19 16:07:12 · 19426 阅读 · 0 评论 -
windows以及linux 环境下Google Protocol Buffer 下载编译安装教程
protobuf的全称是Protocol Buffer,它是google 的一种数据交换的格式,可用于用于分布式应用之间的数据通信或者异构环境下的数据交换。////////////////////////////////////////////////////////////////////////////////////////////////以下是window环境下原创 2015-09-24 16:13:15 · 3877 阅读 · 0 评论