C++
文章平均质量分 85
迷之程序员
这个作者很懒,什么都没留下…
展开
-
复权因子1
简单的说,复权因子就是权息修复比例。介绍有了“复权因子”,计算向前复权价格、向后复权价格、收益率等变得非常轻松了:A)计算向后复权价格:向后复权价格 = 原始价格 * 复权因子,如:计算收盘价的向后复权价格,只要将收盘价(sp)乘以同一行中的复权因子(yz)即可。B)计算向前复权价格:首先,取得当前证券的最大复权因子,然后,将复权因子除以最新复权因子,得到“前复权因子”,最后,将计算日收盘价乘以“前复权因子”即得到向前复权价格。股票复权因子=[股权登记日收盘价*(1 每股派红股...原创 2022-05-12 19:56:23 · 2195 阅读 · 0 评论 -
春季总结(四)
1、软件设计师项目经理》软件架构师》软件设计师》程序员截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。分别是:用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种,包图、组合结构图、交互概览图3种。[1] 用例图:从用户角度描述系统功能。 类图:描述系统中类的静态结构。 对象图:系统中的多个对象在某一时刻的状态。 状态图:是描述状态到状态控制流,常用于动态特性建模 活动图:描述了业务实现用例的..原创 2022-04-01 12:34:26 · 778 阅读 · 0 评论 -
春季总结(三)
1、设计模式2、零碎点常见C++笔试面试题整理_ljh0302的博客-CSDN博客_c++ 面试题3、结构体struct和共同体union(联合)的区别结构体:将不同类型的数据组合成一个整体,是自定义类型共同体:不同类型的几个变量共同占用一段内存1)结构体中的每个成员都有自己独立的地址,它们是同时存在的;共同体中的所有成员占用同一段内存,它们不能同时存在;2)sizeof(struct)是内存对齐后所有成员长度的总和,sizeof(union)是内存对齐后最长数据成员的长度、原创 2022-03-30 19:17:23 · 1168 阅读 · 0 评论 -
春季总结(二)
1、智能指针2、unordermap hashmap3、基于IO的并发4、C++11noexcept5、linux命令 查看虚拟内存查看进程6、OpenGL原创 2022-03-29 13:06:58 · 1701 阅读 · 0 评论 -
春季总结(一)
一、epoll高并发网络编程之epoll详解_shenya1314的博客-CSDN博客_epool深入理解 Epoll - 知乎一般客户端使用select,服务端使用epoll。基于select模型的服务器程序,要达到10万级别的并发访问,是一个很难完成的任务,一般只能处理几千的并发连接epoll的设计和实现与select完全不同。epoll通过在Linux内核中申请一个简易的文件系统(文件系统一般用什么数据结构实现?红黑树)。把原先的select/poll调用分成了3个部分:第一步:.原创 2022-03-25 00:50:11 · 1391 阅读 · 0 评论 -
2020-12-02
一、#用来把参数转换成字符串例子一:#define P(A) printf("%s:%d\n",#A,A);int main(int argc, char **argv){int a = 1, b = 2;P(a);P(b);P(a+b);system("pause");}输出为:例子二:#define SQUARE(x) printf("The square ...转载 2020-12-02 13:56:41 · 121 阅读 · 0 评论 -
c++创建线程:CreateThread 和pthread_create和 _beginthreadex
CreateThread在 Windows 中,您可以使用 CreateThread() 来创建线程,创建的线程在调用进程的虚拟地址空间中运行。HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, // SDSIZE_T dwStackSize, // initial stack sizeLPTHREAD_START_ROUTINE lpStart...转载 2020-05-27 09:52:07 · 3147 阅读 · 0 评论 -
C++ Direct2D绘图、winapi创建窗口初探
1、什么是Direct2D一言以蔽之,就是Windows 7平台上的一个2D图形API,可以提供高性能,高质量的2D渲染。比直接使用WINDOWSAPI会先进和轻松一些。D2D的架构Direct2D是基于Direct3D 10.1 API构建的,这意味着Direct2D可以使用硬件加速,下图是Direct2D与Direct3D的一个关系图由上图可以看出,Direct2D还自...原创 2020-04-20 18:20:48 · 3237 阅读 · 0 评论 -
深入网络流媒体传输:ffmpeg实时截屏编码解码显示-远程桌面监控
终于可以说从“探”进入到了“入”的文章说实话已经搞了两个月,中间不断地有各种需求实际做的时间很少,而且这俩月还考了两个证,软件设计师和期货投资分析。所以拖了我这么久才弄好一个小demo,当然,大部分时间都浪费掉用来划水了也是原因之一(炉石传说真尼玛好玩)编码端:1、调用ffmpeg进行截屏,截屏数据是BMP,需要进行解码,解码之后转为XXX,还需要转换为YUV420,然后对YUV进行编...原创 2019-11-20 15:12:54 · 3229 阅读 · 5 评论 -
FFmpeg编码器、解码器。YUV和H264
代码均来自雷神的博客。这篇是水的。说几点自己的感悟,FFMpeg环境很好配置,从官网下载dev和share,需要同时使用lib和DLL。至于无诶啥呢么要这样我也不懂只是不用dll会报错。然后要关闭SDL检查。因为这些代码比较老,FFmpeg更新太快。然后比较坑的:SDL库用不好,学习中,如果能用好就直接用FFM截屏了。FFm和opencv的Mat数据转化太复杂了,过于复杂的东西在我看来是有...原创 2019-10-12 16:14:43 · 752 阅读 · 0 评论 -
windows socket编程
#ifndef BASIC_MYLOCK_H#define BASIC_MYLOCK_H#ifdef _MSC_VER#include <WinSock2.h> // 在每个windows.h 的include 前加 防止AF_IPX 重定义#include "Windows.h"//系统用的线程互斥锁。namespace ITapManager{...转载 2019-06-12 17:24:54 · 1380 阅读 · 1 评论 -
请放弃MFC
我之前也是用mfc的,但是后来,接触的多了,才发现,MFC实在是太不好用了大学写了不少MFC,不过使用VC6写的,算是带我进入软件大门的东西了,很怀念。工作后。偶然间,想要写一个MFC小程序,发现VS2017,创建一个控件成员变量,居然有了BUG,上MS官方论坛,发现一堆人已经在请愿进行修改了。然而只有一个微软工程师回应了,不知道哪一个版本会修复。于是一堆人都很生气。一个人说道:看看,...原创 2019-01-19 18:14:52 · 1823 阅读 · 1 评论 -
C++中的桥接设计模式
本文简单介绍C++中的桥接设计模式。主要是为了隐藏数据以及减轻编译时的压力。通常的做法是另外定义一个新的类,其接口和原来的类一致,但是其数据全部隐藏在新的类中。例如我们定义A类,然后定义一个新类B和其有相同的接口,其数据成员都在新类中。引用A类的代码就不需要重新编译。 1 2 3 4 5 6 7 8 ...转载 2019-06-04 11:54:56 · 234 阅读 · 0 评论 -
c++ map 内存泄漏
如果map,vector中存放了指针,指向手动分配的内存区域,则map,vector生命周期结束时,需要手动释放该内存区。map,vector的析构中带有垃圾回收机制,不需手动清空。记得,手动分配,才需手动清空。c++ map指针的使用 std::map<QString,QString> *abc; abc->insert(mak...转载 2019-06-04 15:16:58 · 6426 阅读 · 0 评论 -
SOCK_NONBLOCK,accept4 阻塞与非阻塞SOCKET
http://www.cnblogs.com/sunada2005/p/3591378.html谓阻塞方式的意思是指,当试图对该文件描述符进行读写时,如果当时没有东西可读,或者暂时不可写,程序就进入等待状态,直到有东西可读或者可写为止。而对于非阻塞状态,如果没有东西可读,或者不可写,读写函数马上返回,而不会等待。非阻塞,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回...转载 2019-07-30 19:39:58 · 7468 阅读 · 1 评论 -
再探P2P之UDP内网穿透实例 c++
公网服务器端:单线程,循环接收连接请求。之后转发两个客户端的IP和端口,转发发完成后自行关闭。/*文件:server.cPS:第一个连接上服务器的客户端,称为client1,第二个连接上服务器的客户端称为client2这个服务器的功能是:1:对于client1,它返回"first",并在client2连接上之后,将client2经过转换后的IP和port发给client1;2...原创 2019-07-23 09:32:59 · 2072 阅读 · 0 评论 -
又探内网穿透——穿透工具ngrok,frp
搜索内网穿透,蹦出来一大堆的内网穿透工具,这不禁让我怀疑人生:已经有这么成熟的产品了,还研究内网穿透干啥?事实证明,这些内网穿透的工具,从原理上看,一是用的开源代码FRP、NGROK包装的,然后就是走的公网服务器中转。并不是我想要的TCP-P2P穿透通信。1而且调研过程中发现一个非常令人失望的事情,如图:可惜成功率不高只不过是中转,有什么意义呢?可见,目前比较成熟的内网...原创 2019-08-01 15:43:39 · 22159 阅读 · 5 评论 -
初探opencv——跟着入门文档的探索
新人入门:http://www.opencv.org.cn/forum.php?mod=viewthread&tid=33549循序渐进:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html中文文档:https://docs.opencv.org/4.1.1/d1/dfb/intro.h...原创 2019-09-04 09:36:00 · 301 阅读 · 0 评论 -
重返opencv——视频编码和格式
我们在详解各种主流的视频格式之前,先抛开各种视频格式的定义,来讨论这样一件事情:你觉得目前的视频格式编码混乱吗?相信这个问题问出来,许多、、不同知识层次的人有不同的思考,但是答案却都有一个共同点就是:“混乱”。、没错,我看了一天的视频格式、后缀、编码、标准。。。。毫无疑问的,任何一个了解视频相关标准的人都会觉得,为什么视频有这么多标准,这么混乱?没错,混乱是正常的,因为不懂所以混乱。真正懂...原创 2019-09-06 11:08:47 · 2425 阅读 · 0 评论 -
epoll
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率.epoll是当前在Linux下开发大规模并发网络程序的热门人选,epoll 在Linux2.6内核中正式引入,和select相似,都是I/O多路复用(IO multiplexing)技术,按照m...转载 2018-08-14 18:05:39 · 137 阅读 · 0 评论 -
c++高效委托实战历程(fast delegate)
c++的fast delegate是一个很麻烦的东西,实际上,用处并不大,因为在c++14中,已经直接支持了映射,所以高版本并用不上。所以这个fast delegate只是浅尝辄止即可。目标:建立一个map,<code,func*>func*即由fast delegate来实现。最终实现:map <code,fast delegate(固定参数类型)>...原创 2019-01-19 16:05:12 · 1818 阅读 · 0 评论 -
C++多线程同步之临界区(CriticalSection)、WINDOWS和LINUX
一、Win32平台1、相关头文件和接口#include <windows.h>CRITICAL_SECTION cs;//定义临界区对象InitializeCriticalSection(&cs);//初始化临界区EnterCriticalSection(&cs);//进入临界区LeaveCriticalSection(&cs);//离开临界...原创 2019-01-19 10:35:22 · 3025 阅读 · 1 评论 -
池化
首先介绍一个概念“池化技术 ”。池化技术 一言以蔽之就是:提前保存大量的资源,以备不时之需以及重复使用。池化技术应用广泛,如内存池,线程池,连接池等等。内存池相关的内容,建议看看Apache、Nginx等开源web服务器的内存池实现。 起因:由于在实际应用当中,分配内存、创建进程、线程都会设计到一些系统调用,系统调用需要导致程序从用户态切换到内核态,是非常耗时的操作。 ...转载 2018-09-12 17:30:24 · 858 阅读 · 0 评论 -
C++
无端监听,客户端请求,连接确认。API交给第三方开发socket要绑定端口。回调函数,把其指针作为参数传给B,回调函数在调用者的内部进行参数传入。相当于是一个借口回调是异步操作。宏。如编译的时候,有两个文件同时include这个文件,第二个就要通过ifndef define来判断是否要进行编译explicit 只写在声明之中,阻止构造函数中的隐式转换。pack...转载 2018-08-15 22:03:19 · 118 阅读 · 0 评论 -
锁
//TMutex和TCondition进程共享模式,不可用做非亲缘关系进程间通讯,容易引起死锁class TMutex{public: friend class TCondition; class Lock { public: explicit Lock(TMutex &mutex) : m_Mutex(mutex) { ...原创 2018-08-13 19:37:56 · 156 阅读 · 0 评论 -
socket理解
、套接字描述符 其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应的FILE *结构的表示就是stdin、stdout、stderr 套接字API最初是作为UNIX操作系统的一部分而开发的,所以套接字API与系统的其他I/O设备集成在一起。特别是,当应用程序要为因特网通信而创建一个套接字...转载 2018-08-15 21:14:01 · 244 阅读 · 0 评论 -
回调函数是啥
1.回调函数基本定义- 什么是函数指针 通俗来说,函数指针是一个指向特定函数的指针。函数的类型由其参数及返回类型共同决定,与函数具体名称无关。示例代码如下: int testFun1(int param1,long param2,float param3); //普通函数定义 该函数的类型为int(int,long,float),该类型的函数指针可以定义为如下: int (*pTf)...转载 2018-08-06 21:19:08 · 286 阅读 · 0 评论 -
继承和多态
多态多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。实现多态,有二种方式,覆盖,重载。覆盖,是指子类重新定义父类的虚函数的做法。重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或...转载 2018-08-01 22:24:31 · 124 阅读 · 0 评论 -
typedef void (*Fun) (void) ——typedef函数指针
#include <iostream> using namespace std;//定义一个函数指针pFUN,它指向一个返回类型为char,有一个整型的参数的函数char (*pFun)(int);//定义一个返回类型为char,参数为int的函数//从指针层面上理解该函数,即函数的函数名实际上是一个指针,//该指针指向函数在内存中的首地址char glFun(int...转载 2018-08-01 22:04:41 · 941 阅读 · 0 评论 -
虚函数和多重继承
任何妄图使用父类指针想调用子类中的未覆盖父类的成员函数的行为都会被编译器视为非法,所以,这样的程序根本无法编译通过。但在运行时,我们可以通过指针的方式访问虚函数表来达到违反C++语义的行为。(关于这方面的尝试,通过阅读后面附录的代码,相信你可以做到这一点)多重继承(无虚函数覆盖)下面,再让我们来看看多重继承中的情况,假设有下面这样一个类的继承关系。注意:子类并没有覆盖父类的函数。对...转载 2018-08-01 21:56:28 · 1371 阅读 · 0 评论 -
epoll学习之路
Socket服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接...原创 2018-09-18 15:04:18 · 608 阅读 · 0 评论 -
OTL操纵MySql处理事务的方法
导入需要改为事物来处理,导入出错的时候就进行回滚。现在的文件导入,通过多个filecount进行导入。出错率较高,现在批量导入,都是从文件中导入,怎么从数据库中批量导入呢--是从文件到数据库,不是从数据库到数据库。接收到导入的请求,批量数据,调用事物进行。只要没有用户的输入,就可以避免sql注入的风险通过otl可以设置事物,应该注意otl_stream缓冲区大小的合理设置(参见13.1小...原创 2018-09-21 11:26:16 · 1005 阅读 · 0 评论 -
c++ 的map、iterator用法
https://blog.csdn.net/bangdingshouji/article/details/73028424参考:资料一:http://www.cplusplus.com/reference/iterator/(第一参考,简单精要) 资料二:http://jjhou.boolan.com/programmer-3-traits.pdf(侯捷随笔,非常全面,有时间深刻可...转载 2019-01-02 17:43:33 · 38465 阅读 · 3 评论 -
TCP端口复用
TCP端口复用 用于TCP穿透之中。为了验证真实性,写了一个小例子。试验了一个端口是否可以同时进行监听接收和发送 ,创建了四个进程。原理:1.设置::setsockopt(accept_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt));2. ::setsockopt(accept_fd, SOL_SOCKET, ...原创 2018-10-31 10:05:15 · 9980 阅读 · 0 评论 -
环形缓冲区
https://blog.csdn.net/p23onzq/article/details/80750745.https://blog.csdn.net/blade2001/article/details/7094232/正在造轮子,同时不停地在找哪里有这个轮子原因:当有大量数据的时候,我们不能存储所有的数据,那么计算机处理数据的时候,只能先处理先来的,那么处理完后呢,就会把数据释...转载 2018-10-20 15:11:46 · 27012 阅读 · 3 评论 -
memcpy 、size_t
sizeof(src),包含'/0',1、memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);拷贝多少个?有一个size变量控制拷贝的字节数;函数原型:void *memcpy(void *dest, void *src, unsigned int count);用法:(1)可以拷贝任何类型的对象,因为函数的参数类型是void*...转载 2018-10-20 10:38:40 · 1064 阅读 · 0 评论 -
5种进程间通信(IPC)
参考资料:http://songlee24.github.io/2015/04/21/linux-IPC/https://blog.csdn.net/wh_sjc/article/details/70283843#commentBoxhttps://blog.csdn.net/violet_echo_0908/article/details/51201278https://www.cn...转载 2018-10-10 15:56:25 · 164 阅读 · 0 评论 -
linux生成.so库,写C++接口
1.写要生成库的头文件和实现文件IPCz.cpp只需要包含一下头文件即可。#include"IPCz.h"IPCz.h中需要包含所有的头文件。#define IPCZ_H#include <stdio.h>#include <cstdlib>#include <iostream>#include<unistd.h>#incl...原创 2018-10-16 10:50:12 · 2684 阅读 · 0 评论 -
C++宏,同名宏,宏的井号
https://blog.csdn.net/s9434/article/details/79871598https://blog.csdn.net/qq_33658067/article/details/79443014https://blog.csdn.net/s9434/article/details/79871598http://bbs.51cto.com/thread-1094...转载 2018-10-09 11:09:09 · 2359 阅读 · 0 评论 -
openssl
#include <openssl/aes.h>#include <openssl/sha.h>#include <openssl/evp.h>三个解析不出来。解决方法:yum install openssl openssl-devel 此外,安装了一个openssl,然而并没有任何卵用。[root@localhost...转载 2018-10-18 10:13:33 · 287 阅读 · 0 评论