自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

转载 C++中STL用法超详细总结

C++中STL用法超详细总结转载,原文由于某些原因打开之后格式不太正确,影响阅读体验固转载方便查看。原文链接:https://blog.csdn.net/u010183728/article/details/81913729版权目录1 什么是STL?2 STL内容介绍2.1 容器2.2 STL迭代器2.3 算法2.4仿函数2.4.1概述2.4.2仿函数(functor)在编程语言中的应用2.4.3仿函数在STL中的定义2.5容器适配器...

2020-12-15 11:19:58 1074

转载 Qt C++子线程中执行任务队列(转载)

转自:https://luoyayun361.blog.csdn.net/article/details/88974834概述在项目中经常会遇到这种情况,当要执行一些耗时操作的时候,如果是在主线程中进行,将会导致界面阻塞,整体体验就会很差,那么,这种情况通常会将任务扔到子线程中去执行。那如果说需要执行的这些任务很多,这时候就需要将任务放到一个队列中,然后循环在子线程中执行任务。所以,这里来介绍一下该场景的框架设计,如何在子线程中执行耗时任务队列。示例上面的描述可能不是很好理解,接下来看...

2020-11-19 13:29:17 880

转载 C++11多线程基础知识

原文作者:aircraft原文链接:https://www.cnblogs.com/DOMLX/p/10945309.html1.创建一个简单的多线程案例:首先导入#include<thread>---用于创建线程其次导入#include<chrono>--用于时间延时 获取时间之类的定义一个线程对象t1,这就自动创建了一个线程,参数就是你要线程去执行的函数,t1是变量名字 随便取std::thread t1(func);下面这里返回一个毫秒级别的.

2020-06-19 09:41:15 1000

原创 Qt3D的简单应用之二:让3D模型动起来

前面说了如何加载外部的3D模型,在加入之后我们要弄清楚Qt在显示3D场景时空间坐标系是如何构造的,这里介绍一个我的经验,可以在加载外部3D模型之前先用Qt自带的Qt3DExtras::QCylinderMesh,也就是圆柱体的对象来画出空间坐标系中X,Y,Z三个坐标轴。画坐标轴的代码如下: /****************************坐标系**************...

2020-04-10 16:46:30 10648 9

原创 Qt3D的简单应用之一:加载外部3D模型

之前项目工作中需要实现一个功能:在控制软件中通过3D的方式显示我们的设备,使其能够更随设备位置的变化而变化。由于控制软件我使用的Qt进行的开发,那么自然就可以使用Qt3D来实现这个功能。我使用的开发环境为Qt Creator,Qt版本为Qt5.10.1。首先看看Qt官方有没有什么合适的例子吧,在Qt的示例代码中搜索“3D”,就可以看到这样一个工程"Qt 3D: Basic Shapes C++...

2020-04-10 15:12:20 17655 12

原创 C++标准模板库(STL)学习和使用笔记之二

常用的容器根据其是否有序排列可以分为:顺序容器和关联容器。且所有容器都是类模板。可以看到的是在C++的标准库中模板和泛型编程以及运算符重载等技术被广泛的应用,而我们实际开发中用到的最多的是面向对象的技术,所以标准库的代码看起来很费劲。顺序容器:array,vector,deque,list,forward_list。这些容器中的元素是无序的。关联容器:set,multiset,map,mu...

2020-04-10 13:18:26 110

原创 Qt多线程使用方法总结

Qt有两种开启多线程的方法,一种是继承QThread,然后重写run函数,另一种是把一个继承于QObject的类调用movetothread方法转移到一个Thread中。这两种方法都经常使用,这里记录一下需要注意的事项。一,继承QThread得到MyThreadMyThread只有run函数是运行在子线程中的,其它所有的函数运行在创建MyThread时的线程中。通俗来说就是如果你是在主...

2020-04-08 09:58:27 1113

原创 C++标准模板库(STL)学习和使用笔记之一

好记性不如烂笔头。看别人的博客文章,不如自己动手记录下来。现在我把之前学习过的关于C++ STL相关的内容记录下来,便于以后的工作和学习。开始了!STL六大部件:容器:最常见的vector、map、list等等分配器:完成我们使用容器时的内存分配工作算法:针对容器的排序、查找等等操作迭代器:针对容器中数据实现的一个类似指针功能的类适配器:这个和设计模式中的适配器模式很相...

2020-04-03 13:55:03 180

原创 C++环形缓冲区的简单实现

分享一个在工作中用到的简单的环形缓冲区。构造简单,可以改造到Qt中使用,也可以直接在VS下使用。所谓环形缓冲区,其实就是带有标识缓冲区中数据头、尾位置的缓冲区,这个缓冲区根据业务的不同,要设置的稍微大一点,不能一有数据过来就填满了,这样就失去使用的意义了。在实际工作中,我们使用TCP和设备进行通信,如果数据流量过大,可以先把数据接收到数据缓冲区中,处理之后再取出。我们定义的包协议可以采用定...

2020-04-03 08:45:22 2633 2

转载 Qt的类反射机制

版权声明:本文为CSDN博主「astro_lee」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/kenier/article/details/62041312前言如何通过类名动态的创建对象(类反射),对于Java开发者来说一点也不陌生,当然Qt也提供了一个元对象系统(The Meta-Objec...

2020-03-31 08:54:02 615

原创 使用QTcpServer创建一个简单的服务器程序之二:多线程服务器(4)-服务端实现

前面说了服务端类MyTcpServer只负责监听连入的客户端,并把这个客户端丢入线程池中。并且还要接收来自界面类的一些请求,并最终通过它管理的线程池来实现。这其中最重要函数就是重写incomingConnection//这里包含一个线程池的对象和一个客户端链表 MyThreadPool m_pool;//线程池 QList<MyTcpSocket*> m_list...

2020-03-25 10:23:21 731 1

原创 使用QTcpServer创建一个简单的服务器程序之二:多线程服务器(3)-线程池实现

首先是继承一个线程类,加入我们需要的一些基本信息。class MyThread : public QThread{public: MyThread(); ~MyThread(); virtual void run(); QList<MyTcpSocket *> m_clientList;//每个线程维护的客户端列表};MyThread...

2020-03-25 09:51:40 861

原创 使用QTcpServer创建一个简单的服务器程序之二:多线程服务器(2)-功能划分

多线程服务器程序有两种常见的实现方式。第一种是为每个客户端分配一个线程,这种方式显然不太合理,也十分消耗资源。第二种就是用线程池来管理客户端,线程池中的每个线程负责多个客户端,本文就是采用的第二种方式。根据我们要实现的功能,现在来看看可能会需要哪些类,这些类承担了什么样的功能。1,线程类---MyThread这个类是用来真正处理客户端消息的,并且每个线程还需要维护一个客户端的链表。...

2020-03-25 09:31:00 601

原创 使用QTcpServer创建一个简单的服务器程序之二:多线程服务器(1)-继承分析

既然要实现多线程服务器,那么我们就要从QTcpServer和QTcpSocket两个类继承出新的类来实现比较复杂的功能。现在来分析继承需要注意哪些问题。首先,来看QTcpServer类。进入Qt Creator的帮助文档,可以看到QTcpServer类有几个重要的虚函数,不用说如果我们要继承QTcpServer类的话,有可能要重写这些虚函数。virtual QTcpSocket * ...

2020-03-24 17:18:48 660

原创 使用QTcpServer创建一个简单的服务器程序之一:单线程服务器

Qt提供了QTcpServer和QTcpSocket两个类用来创建服务器相关程序,其中QTcpServer就是一个监听使用的socket,并不负责与客户端通信。QTcpSocket就是负责与客户端通信的socket。既然要创建一个简单的服务器程序,那么我就不从QTcpServer和QTcpSocket继承出新的类来实现了,毕竟用组合的方式来实现更为简单。这个思路很简单,我就一边说思路一边写...

2020-03-24 16:52:26 829

原创 C++设计模式心得体会

关于GoF提到的23种设计模式前面的博文几乎全都涉及到了,只是根据我们实际开发中使用的频率不同,我的侧重点也有所不同。学完这些所有的设计模式之后,我也有一些自己的心得体会,下面简单的来说一说。学习过程中了解到了设计模式有八大原则:依赖倒置原则,开放封闭原则,单一职责原则,Liskov替换原则,接口隔离原则,对象组合优于类继承,封装变化点,面向接口编程。这些原则有些很抽象,有些很具体,具体的东西...

2020-03-12 17:19:43 302

原创 C++不常用设计模式梳理

C++常用设计模式的相关博文到这里就整理的差不多了,我们实际工作中常用的设计模式就是我前面整理的那些。GoF所提到的23种设计模式还有一些我没有整理到,包括:享元模式、建造者模式、外观模式、中介者模式、备忘录模式、迭代器模式、职责链模式、访问者模式、命令模式、解释器模式。这些模式因为各种各样的原因在我们的工作中很少会遇到,所以这篇博文就先对这些剩下的模式做一个简单的介绍。1,享元模式定义:...

2020-03-11 14:32:25 294

原创 C++常用设计模式之:原型模式

原型模式是一种不太常见的创建型模式,我们平时的工作中几乎不会遇到这种模式,但是在一些框架设计中会用到,这里我们只做了解即可。它解决的也是对象创建时的问题,如果从代码层面上来看,它可以看作是工厂方法的一种巧妙的变化。原型模式的定义:是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。(说白了就是调用对象的拷贝构造函数来创建一个新的对象)既然上面说到它是工厂...

2020-03-10 16:36:04 974

原创 C++常用设计模式之:单例模式

单例模式没啥好说解说的,这个模式太经典了,以至于即使你没有接触过设计模式也一定听过单例模式的大名。网上关于单例模式的例子有很多,这里就算做一个归纳总结吧!单例模式的定义:保证一个类仅有一个实例,并提供一个该实例的全局访问点。UML结构图如下:网络上常见的单例模式实现,有以下几种://类的声明class Singleton{private: Singleton...

2020-03-10 08:45:12 276

原创 C++常用设计模式之:组合模式

组合模式是一个特征非常鲜明的设计模式,特点就是它的定义一点也不抽象!!!。组合模式定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式对单个对象(叶子节点)和组合对象(树节点)的使用具有一致性(送分题啊!同志们!一致性是啥,就是虚接口呗!)。还用啥现实中的例子来说明,这就是妥妥的数据结构中的树形结构啊!人家定义都直接点明了。UML结构图如下:下面我用伪码来表述上面...

2020-03-09 15:08:49 1098

原创 C++常用设计模式之:状态模式

状态模式就是升级版的策略模式!它解决的也是程序中常见的条件可能变化的if/else或者switch/case语句,不同的是状态模式在状态发生改变时,其内部会使其指向下一种状态,无需调用者做出选择。这样解释好像还是太抽象了,算了,先看定义吧。状态模式的定义:允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。看看上面的定义,是不是更抽象了...还是用实际程序中例...

2020-03-09 11:32:05 249

原创 C++常用设计模式之:代理模式

代理模式是一种常见的接口隔离的模式,从某种意义上来说,我觉得它和适配器模式很像,最起码它两的UML结构图就很像。使用到的思想也是用组合和继承的方式来解决问题。代理模式的定义:为其他对象提供了一种代理,以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用(这里的中介作用可以类比适配器模式中的那个适配器,在代理模式中就是...

2020-03-09 09:54:17 138

原创 C++常用设计模式之:抽象工厂

抽象工厂同样是一种常见的创建型模式,它也是用于解决程序中创建对象使用new而产生的紧耦合的问题。那它与之前说到的工厂方法有什么不同呢?工厂方法创建的是一个单一的对象,而使用抽象工厂可以创建一系列对象。抽象工厂的定义:可以提供向使用者一个接口,这个接口可以创建一系列具有相关性的对象。结合之前说的工厂方法我们来看看现实中的例子:还是以家电为例,在工厂方法中我们得到了一个具体品牌的家电,在实际生...

2020-03-06 16:20:13 364

原创 C++常用设计模式之:桥接模式

桥接模式也是一个很特殊的模式,它也是既用到了继承也用到的了组合的模式,看到这里是不是觉得和之前说过的装饰器模式非常的相似?它们确实有一些共同的地方,即都是利用组合的方式解决了继承带来的子类规模过大的问题。不同点就是装饰器模式是为了给一个对象增加一些额外的职责,而桥接模式其实是解决了两个或者多个类不同方向演化(简单来说就可以理解为两个类的演化)的问题,而这些类本身也是有着某种联系。这样解释好像还是太...

2020-03-06 14:22:10 151

原创 C++常用设计模式之:适配器模式

适配器模式是软件开发中常用的模式之一,比如我们之前写的类提供的接口(老的接口)在新的环境下已经不合适了,那么我们怎么改变才能使老的接口适配现在新的接口呢?之前说过设计模式中常用的手法就是组合和继承,这在适配器模式中得到了很好的体现。首先,我们要从新的接口继承一个类,这个类就是适配器类(为什么要从新接口继承?那是为了遵循新接口提供的接口规范),那这个适配器类要怎么去适配老的接口呢?很显然的办法是用组...

2020-03-06 10:33:55 141

原创 C++常用设计模式之:简单工厂

其实简单工厂并不属于23设计模式之中,不过在实际应用中因为其简单方便理解所以也经常使用。而且在实际应用中很多人分不清简单工厂和策略模式的区别,这里也会简单的说一下我的理解。简单工厂的定义:属于创建型模式的一种,是由一个工厂对象决定创建出哪一种产品类的实例。用实际应用来举例,就拿制造一部手机为例来说明吧。UML结构图如下: ...

2020-03-05 14:45:42 181

原创 C++常用设计模式之:工厂方法

工厂方法是创建对象时最常见的方法之一,我们在程序中创建一个对象往往会使用到new,在new的左边可以是一个抽象的基类,而new的右边则必须是一个具体的类,这种紧耦合的关系不是我们想要的。工厂方法就是用于解除这种耦合关系的办法!它是怎么做的了?用new无法避免的话,那就返回一个对象呗。工厂方法的定义:是一种常见的对象创建型设计模式,此模式的核心思想是封装类中不变的部分(稳定的),提取其中个性化善...

2020-03-05 10:48:40 189

原创 C++常用设计模式之:策略模式

策略模式也是常见的设计模式之一,一般在程序中如果遇到条件可能变化的if/else或者switch/case语句,就可以想想是否可以用策略模式来替换了。策略模式的定义:定义了一系列算法,把它们一个个封装起来,并且使它们可以相互替换(变化的部分)。策略模式可以使算法独立于使用算法的客户端(稳定的部分)。在实际应用中我们也是用策略模式来解决选择的问题。例如:我们周末选择哪项体育运动的问题,是打乒...

2020-03-05 09:29:12 252

原创 C++常用设计模式之:装饰器模式

装饰器模式是非常特殊的一个模式,它既用到了继承也用到了组合,而继承和组合也是设计模式中常用的手法。装饰器模式的定义:是在不比改变原来类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。用现实中的列子来类比,例如:我们喝奶茶或者果汁的时候,可以添加不同的辅料,椰果、珍珠、冰块、糖等等。通过这些原料我们可以自己组合成自己喜爱的饮料。UM...

2020-03-04 16:37:25 319

原创 C++常用设计模式之:观察者模式

观察者模式是23种设计模式中很重要也很常用的模式,在软件开发中我们经常会遇到。观察者模式的定义:定义了对象间的一对多的依赖关系,让多个观察者对象同时监听某一个主题对象(被观察者)。当主题对象的状态发生更改时,会通知所有观察者,让它们能够自动更新。在实际的应用中我们常常使用观察者模式来解决软件中的消息通信的问题。例如,我们有一个QT编写的QWidget应用,这个应用包含了多个QWidget窗...

2020-03-04 14:41:35 170

原创 C++常用设计模式之:模板方法

写这篇博客的目的是为了更加深入的理解设计模式,以便在以后的工作中能够利用设计模式写出简洁、高效的代码。这里我首先推崇的是李建忠老师的c++设计模式视频课程,李老师的课程从实际代码为切入点,利用重构的方式来讲解设计模式,使我受益匪浅!这是我见过目前最好的讲解设计模式的视频课程,在课程中李老师用自己的话来还原、总结了设计模式中那些晦涩和抽象的部分,让人茅塞顿开!强烈推荐学习!个人觉得李老师所说的找...

2020-03-04 13:37:25 270

MyNetWork.rar

利用QTcpServer+线程池实现的一个简单的服务器端程序。具体请查看博文:https://blog.csdn.net/zouyang85457013/article/details/105075895

2020-03-27

TCP-IP详解

TCP-IP详解,帮助你了解网络编程的基本原理,不错的好书。

2012-07-26

比较好的资源哦IIS5.1

想学C#的朋友过来看看呀!比较好用的IIS5.1 绝对实用

2009-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除