自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (4)
  • 收藏
  • 关注

原创 C++ STL 组件 —— 迭代器

包含 forward_iterator_tag、bidirectional_iterator_tag、 random_access_iterator_tag类型;类型的对象来访问容器(如下例1、2);另外C++标准库算法(Algorithm)等都需要借助迭代器访问容器(如下例3)。目前对迭代器的基本特点有一个认识,后续通过实现容器对迭代器进行深入了解。类型应保证足以存放同一数组中两个指针之间的差距, 有可能是负数;C++ 容器类都定义了名为。

2024-02-16 12:38:30 408

原创 C++ 基础——类模板特化

上述的模板特化对STL的迭代器很重要,之后章节将详述它们。二、 类模板特化(Specialization)一、typename 关键字的作用。

2024-02-10 22:34:40 387

原创 c++基础——运算符重载

重载成员访问运算符(函数)必须返回类对象指针或自定义了"箭头"运算符的类的对象。一、重载成员访问运算符(->)或者重载了"箭头"运算符的类的。的表达式,则obj是一个。

2024-02-09 19:32:56 452

转载 WINDOWS 安装MYSQL

在Windows中安装MySQL - 南山林少 - 博客园

2022-03-07 13:54:45 181

原创 Qt —— 细说自定义Tree View Model

Tree view与Tree Widget 相比而言,需要为tree view 设置一个model。使用tree view 能有效降低内存的使用率。但是需要自定义model。下面参考Qt官方提供的demo,讨论如何自定义Tree View Model。依据名为simple tree model官方demo可知道:要自定义tree view model需要定义一个树形结构的底层数据结构,该类型结...

2020-01-20 15:54:25 3795 3

原创 C++11之保持字符串的字面意思

c/c++ Java等语言中,反斜杠(\)用于与其他字符组成特殊含义字符(如:\n是换行)。有时想表示其字面意思,比如Windows下路径分割符,在代码里要写成\\ ,显得比较麻烦。在c++11之后提供了一个简单方法:R"()"。用法为:QFile file(R"(C:\Users\admin\Desktop\default.txt)");。...

2020-01-20 11:31:23 327

原创 循序渐进学ffmpeg(一)—— PCM初识

做pcm编码aac开发的过程中,对pcm有个初步的认识,再此整理一下。

2019-07-03 19:28:36 266

原创 基本排序——快速排序(Python语言描述)

一、快速排序原理按从小到大快速排序:在数组中随机选一个数(通常为第一个),数组中小于等于此数的放在它左边,大于此数的放在右边,这样将数组一分为二。再对两边数组递归调用快速排序,直到都有序为止。#!usr/bin/python3def quickSort(arrlist): length = len(arrlist) _quickSort(arrlist, 0, len...

2019-06-15 00:35:13 272

原创 c++11新特性——移动操作

c++11新引入的这个特性实在是太棒了。因为它避免了对象创建过程中的内存分配问题,所以使代码执行的高效率更高。本文讨论对象移动操作的注意事项。一个c++类要想支持移动操作必须满足如下条件:move之后的原对象必须处于刚初始化的状态(关于初始化与赋值的概念请查阅《effective c++》对于理解这个条件很重要)。 销毁移动后的对象必须是安全的(比如:不可出现释放正在使用的资源)下面代...

2019-06-14 11:23:31 824 1

原创 查找——二分法查找(Java语言描述)

二分法查找最基本的要求是数据序列必须升序。定位中间位置并获取到位于该位置的元素值,通过比较中间值与被查找值的大小来重新定义查找范围(beigin~mid 或 mid+1~end)。不断重复之前的操作。直到查到或范围缩小到0。package yao.sort;import org.junit.Test;public class HalfFind { public static voi...

2019-06-13 19:36:07 181

原创 平衡二叉树——旋转与插入(Java 语言描述)

对平衡二叉树的研究,大概已有半年之久。最近才算是对它有所领悟。因为网上好多博文对其讲解的都很好,在此就不再详述,只对其进行分篇章总结。一、左旋转在网上找到一左转GIF示意图。我借用一下:在不平衡子树的右子树的右孩子插入结点导致的不平衡应该进行左旋转。 /** * 约定null节点的高度为-1, 叶子结点高度为0。到根结点变大; * @param node 某一节...

2019-06-09 15:13:47 294

原创 基本排序之插入排序(Python语言实现)

一、插入排序原理学习插入排序时,查阅不少前辈的博文比如此文。再此也记录一下自己对插入排序的理解:将待排元素插入进已有序列中。已排序列在变长,待排序列在缩小。插入是这样步骤,取出一个数,与前面一个数比较,该数较小,那就将前面数往后挪一个位置。继续往前找,直至比前一个数大或者到达已排好的列开始为止,将取出的数放入。再取出一个数按前操作,直到所有待排数据全部插入为止。二、编码#!usr/b...

2019-06-09 14:10:48 164

原创 基于Qt的Opengles可编程管线学习——VAO(QOpenGLVertexArrayObject的使用)

标准OPenGLes2.0还没有引进VAO,应该是OpenGL3.0以后才有。不过Qt封装的OPenGLes2.0可以使用VAO,它就是QOpenGLVertexArrayObject。其用法与OpenGL3.0中的VAO用法一样。本文假设您熟悉OpenGL的vao。接下来我们一起来学习这个类的用法。一、QOpenGLVertexArrayObject的使用流程和VBO用法(可参考博主另外...

2019-06-01 11:05:37 4144 1

原创 基于Qt的Opengl可编程管线学习——纹理(QOpenGLTexture使用)

纹理,简单说就是将图片展示在物体表面。可以将其类比为墙纸。纹理分为1D,2D, 3D 三类。这里只讨论2D纹理。先要记录一下比较基本的概念。一、纹理坐标纹理坐标起始于(0, 0),也就是纹理图片的左下角,终始于(1, 1),即纹理图片的右上角。和数学二维坐标一样。二、纹理创建Qt提供方便的纹理类——QOpenGLTexture。它使纹理操作变得非常简单。这样就创建了一个纹理对象了...

2019-05-25 23:57:56 4608 6

原创 Qt 自定义控件(一)——滑动切换效果的StackedWidget

漂亮的界面加点动画效果将显得更加炫酷。这一片将使用Qt的动画框架,子类化QStackedWidget实现页面的过渡切换效果。

2019-05-24 15:45:02 3592

原创 基于Qt的Opengl可编程管线学习—— VBO(QOpenGLBuffer的使用)

再一次赞扬Qt对OPenGL的支持真的是太棒了。之前一片文章介绍绘制三角形时,顶点位置数据与颜色数据是分开传递的。这篇文章将介绍如何使用Qt的VBO进行顶点数据传递以及数据格式解析。一、VBO的基本使用流程上图中是QOpenGLBuffer对象的使用方式,使用VBO之前必须调用create()创建。使用时,调用bind()。以告知OPenGL我们在使用的VBO。调用allocate()...

2019-05-23 13:13:32 6257

原创 基于c++新标准线程安全的单例模板实现

单例——在应用程序中某个类的实例只有一个,以便做全局访问点,这样可以协调系统的整体行为。也就是说提供访问某一资源(硬件设备、ini文件……)的统一接口。在此只讨论基于c++新标准的一个线程安全实现。涉及到CRTP(Curiously Recurring Template Prattern)的使用。先看以下知识点:1. c++新标准中指出:局部static变量的初始化是线程安全的。2. ...

2019-04-26 10:17:23 314

原创 基于Qt的OPenGL可编程管线学习之Hello Triangle

之前学习过OpenGL的固定管线,后来了解到现在大部分公司都用可编程管线(programmable pipeline)。所以决定开始研究学习可编程管线。Qt5.*之后对OPenGL的支持更好了。经过一番学习,写了一个基于Qt 的OpenGL例子——Hello Triangle Demo,在此记录一下加深一下印象,同时让像我一样的新手快速入门。本文假定您对OPenGL 的固定管线有所了解。...

2019-04-21 10:22:59 899

原创 使用vs13编译boost为32位静态库

之前也记录过Qt中使用boost,最近在vs中使用boost有了些新发现,再此记录一下。一、编译过程1. windows开始键 --》所有程序 --》点击 Visual Studio 2013(文件夹标识) ---》Visual Studio Tools打开下图所示目录:2. 以管理员身份运行上图框中的快捷方式(上边是X64的,估计编译64位的运行这个吧)。然后切换到boost源码...

2019-03-26 10:58:37 355

原创 c++11之再探std::enable_shared_from_this

之前一片关于std::enable_shared_from_this<T>类的文章,只是简单探讨了一下这个类的使用方法与原因,经过不断的学习,对其又有了新的认识。为避免忘记所以来记录一下。一、它有啥作用这个类能够让shared_ptr<T>管理的资源安全的生成其他shared_ptr<T>引用,从而共享这个类的某一资源(就是malloc出来的对象)。实际...

2019-03-25 16:06:37 888 1

原创 网络基本概念——会话(session)

这是摘自维基百科的篇章,对于计算机学科中“会话”的解释如下:In computer science, in particular networking, a session is a temporary and interactive information interchange between two or more communicating devices,or between a ...

2019-03-25 15:01:41 11580

原创 将n向上取整到大于它的最小的8(2^n)的倍数。

最近在学习c++ memory pool,读《c++ 应用程序性能优化》一书时,发现了一个算法:(num + (b - 1)) &amp; ~(b-1)。其中num是要向上取整的数,b为2^n。对于这种优秀对的思想一定要记录一下。...

2019-03-08 10:23:53 765

原创 std::ifstream以二进制方式读取图片文件,用Qt再将其转为图片(QImage::loadFromData()函数使用)

  上篇文章中谈到谈到ifstrem可以以二进制形式读取图片文件,读取方式与读取txt方式一样,将不再赘述。本文将重点讨论“如何将图片二进制数据转换为图片”。       实际很简单,借助QImage这个非常强大的工具类就可以实现,这个类实际可以直接加载图片文件的,我们先暂时忽略这一点。看看这是怎样的一个过程:代码如下#include "widget.h"#include "ui_...

2018-08-19 10:39:43 14062 1

原创 c++ IO库之ifstream的一些基本操作

       c++ IO库中关于文件的的流有六个,它们是ifstream wifstream ofstream wofstream fsream wfsream。w开始的是针对wchar_t类型的数据。从左到右分为三组,它们作用分别是:从文件读取数据、向文件写入数据、读写文件。它们包含在fstream头文件中最近在项目中用到了ifstream,现在对其进行简要说明。               ...

2018-08-19 09:44:22 3781

原创 c++11多线程编程之condition_variable

一、condition_variable     多线程编程中,常会涉及生产者线程与消费者线程同步问题。c++新标准库(boost)中condition_variable比使用mutex更精确的控制线程执行。简单说就是其中一个线程会及时通知其它线程,已经把数据处理好了。等待中的线程得到“通知”被唤醒来处理数据。 二、示例代码        通过以下代码来说明其工作方式。#incl...

2018-08-11 16:31:11 774

原创 快速入门Google序列化反序列化库——google protobuf 2

一、首先了解序列化与反序列化的概念      序列化:将对象转化为字节序列的过程。     反序列化:将字节序列转化为对象的过程。    标题提到的google protobuf 提供了这种支持。二、使用场景     1&gt; 通过socket在网络上传递对象;(我只接触过这种情况)     2&gt;把的内存中的对象状态保存到一个文件中或者数据库中;    3&gt...

2018-08-05 12:05:22 1752

原创 c++11 之 auto、decltype关键字与尾置返回类型

c++11新引入两个关键字: auto、decltype来进行类型说明。它们为较复杂类型的声明提供了帮助。一、auto关键字    1&gt; 类似c#关键字var,由它声明的对象类型依赖于表达式的类型,因此auto定义的变量必须有初始值:    int a = 9;    auto a1 = a;  //  正确a1为int型     auto a2;        //错误...

2018-08-04 18:40:56 479

原创 c++11之std::enable_shared_from_this入门

一、std::enable_shared_from_this&lt;T&gt;应用场景在记录std::enable_shared_from_this之前,需要先看一下原始指针与shared_ptr在使用过程中一些问题。 先看一代码段:#include &lt;QCoreApplication&gt;#include &lt;memory&gt;#include &lt;i...

2018-07-22 22:55:08 1271

原创 std::shared_ptr析构过程剖析

上篇文章介绍了shared_ptr对象构造,这篇文章记录其析构过程。    ~shared_ptr() _NOEXCEPT{    // release resource    this-&gt;_Decref(); //【1】}//[1]void _Decref(){    // decrement reference countif (_Rep != 0)    _Rep-...

2018-07-22 16:56:59 3529

原创 c++11之weak_ptr剖析

一、概述     引用《c++ primer》的话:weak_ptr是一种不控制所指向对象生存期的智能指针,它指向由一个shared_ptr管理的对象。将一个weak_ptr绑定到shared_ptr不会改变shared_ptr的引用计数【0】。一旦最后一个指向对象的shared_ptr被销毁,对象就会被释放。即使有weak_ptr指向对象,对象也会被释放。    weak_ptr...

2018-07-22 16:31:28 1192

原创 c++11之std::shared_ptr剖析

一、概述    c++11中std::shared_ptr&lt;T&gt;提供一种多个栈对象协作管理同一个堆对象的机制。以便在堆对象没有被引用的情况下将其free。         std::shared_ptr&lt;T&gt;的几个重要字段:     _Ty *_Ptr;                                 //被管理的动态内存指针     _Ref_co...

2018-07-21 22:35:24 4779

原创 c++11正则表达式(一)——匹配模式(pattern)

一、作用    pattern 是一个c++字符串,它作用是给出一匹配规则,去检测给定字符串是否具备这种拼接规则。二、模式字符串的语法规则      需要插入一句题外话,在特殊元字符中会用到\,对于c/c++而言它是个特殊字符,若我们需要一个“斜杠"时候需要   在其前面加一个\,即应该写为\\。    1&gt;开始与结尾位置声明        1.1 ^表示字符串的开始            ...

2018-07-14 23:38:42 8660

原创 Linux 下环境变量配置

    上一篇文章介绍了环境变量的作用,这篇文章将介绍在Linux环境下如何配置环境变量。与windowns系统有所不同。可以通过以下两步骤来配置环境变量(PATH):    1&gt;将bin文件的路径添加系统环境变量PATH中:        [1] vim /etc/profile        [2]在文件最后编辑: export PATH=/opt/binpath:$PATH      ...

2018-06-30 12:47:14 175

转载 Qt事件机制预览

这篇文件将Qt事件机制讲解的通俗易懂。非常感谢大佬的分享。点击转到原文章地址

2018-05-02 16:43:47 167

原创 Spring笔记 之XMl装配bean-----构造器引用参数法

    在上篇文章中通过自动装配bean的方法来注入依赖,这篇文章将记录另外一种方式。正如文章说到,使用的是xml声明依赖的形式,对于这种方式我们还可以用构造函数传引用参数的方式,设置属性方式.......。    接下来一步一步学习这个装配过程:        一、创建Java 工程,添加外部库            与上篇文章方法一样,不再赘述。        二、借助Spring tool ...

2018-04-15 11:08:08 1467

原创 以dll的形式使用boost::thread (cannot open file 'libboost_thread-vc140-mt-gd-1_66.lib' 错误解决办法)

    在使用boost thread 的静态库的时候比较简单,静态库有一定的缺陷,所以尝试使用动态库,过程比使用静态有点复杂,亦或说需要注意一些细节。经过一番折腾之后终于成功了。分享一下学习经历。一.编译boost 库为动态库    网上资料比较多,就不介绍了。二.了解boost thread    1&gt;boost thread 依赖的其他库:            chrono、 dat...

2018-04-06 22:16:04 1176

原创 QApplication 对象, qAPP 与 自定义退出应用按钮功能

谈到QApplication的类不得不提及这个类在main()函数中创建的对象还有一个与之对应的全局宏qApp,我们可以发现他们是同一个内存对象,也就是说可以在程序的任何地方访问app对象:我们可以利用qApp来退出事件循环从而退出应用,正如上图中lambda表达是那样,点击了pushButton按钮,调用quit() 函数。观察控制台输出发现我们的最顶级widget在退出应用时被析构,没有内存泄...

2018-03-24 11:33:36 4838

原创 Qt Creator 传入命令行参数与使用QString解析命令行参数信息

一、为一个应用传入命令行参数的方式然如下:二、在上图中我传入了两个字符串,第一个代表要读的文件的路径,第二个代表要要输出到的文件路径。插句废话QString类是一个非常强大的字符串处理工具,接下来看我们如何解析我们要的路径信息。三、运行结果如下,成功操作文件:...

2018-02-11 08:53:55 2151 1

原创 typescript(angular 2)中 对number类型的数据进行保留小数操作

 ts数据的类型是一个any类型,它有一个number类型的属性,当我们对这个字段进行toFixed()操作时会有这样一个错误:core.js:1427 ERROR TypeError: this.actualViscosity.value.toFixed is not a function 解决办法很简单,借助 Number 类型就可以解决这个问题就像这样:this.inkTemperature...

2018-02-08 13:02:39 11726

原创 非OpenGL版本的Qt使用QGLWidget构建OPenGL应用须知与编译错误解决方法

我们知道可以使用openGL版本的Qt(如Qt5.4.2),通过继承QGLWidget的方式来创建OPenGL应用。我个人觉得这种方式更符合openGL窗体的开发模式(csgl, android(openglES) 就是这么做的):初始化GL ==》窗体大小改变处理 ==》绘制Qt的版本更新很快,我最近有个想法就是让上述方式开发的OPenGL应用也可以在新版本Qt(如5.8.0)编译成...

2018-02-01 11:35:06 1349

protobuf2测试demo与所需lib、exe

protobuf2测试demo与所需lib、exe.使用了Qt创建工程。可以转为vs工程。

2018-08-05

springXmlBean.rar

eclipse 下 Spring 4.2 使用XML装配bean的一个demo,详尽展示类结构关系且包含必要的jar包(commons-logging-1.2.jar.....)

2018-04-15

boost thread dll 应用

一个 vs 使用 boost thread dll 的demo,IDE 是 vs15。其中包含所需要头文件和dll,可放心下载,有使用问题可发email到[email protected]

2018-04-06

testfilemodel.rar

如何使用qApp宏来,自定义退出应用按钮功能的一个demo。

2018-03-24

空空如也

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

TA关注的人

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