- 博客(120)
- 收藏
- 关注
转载 Qt中rcc工具简介
Qt 自带的开发工具集里有专门的 rcc 工具,用于将 *.qrc 里面描述的图片、文档等编译成对应的源代码文件 qrc_*.cpp 或者独立的二进制资源文件 *.rcc。下面介绍 rcc 工具的两种用途:(1)生成独立的二进制资源文件 *.rcc对于太大的图片、音频、视频等文件,不适合集成到目标程序内部,可以放到操作系统文件路径,或者单独编译成外挂资源 *.rcc 。举例来说,myresou...
2019-06-02 14:42:03
4021
转载 掌握 Linux 调试技术
本文讨论了四种调试 Linux 程序的情况。在第 1 种情况中,我们使用了两个有内存分配问题的样本程序,使用 MEMWATCH 和 Yet Another Malloc Debugger(YAMD)工具来调试它们。在第 2 种情况中,我们使用了 Linux 中的 strace 实用程序,它能够跟踪系统调用和信号,从而找出程序发生错误的地方。在第 3 种情况中,我们使用 Linux 内核的 Oops...
2019-03-06 00:01:36
956
转载 mysql备份恢复详解 转载
前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 ...
2018-12-03 14:25:41
411
转载 使用 C++11 智能指针时要避开的 10 大错误
使用 C++11 智能指针时要避开的 10 大错误2016/08/19 · C/C++, 开发 · C++, C++11, 指针本文由 伯乐在线 - 欣仔 翻译,wrm 校稿。未经许可,禁止转载!英文出处:Deb Haldar。欢迎加入翻译组。我很喜欢新的C++11的智能指针。在很多时候,对很多讨厌自己管理内存的人来说是天赐的礼物。在我看来,C++11的智能指针能使得C++新手...
2018-11-05 16:17:33
516
原创 C++智能指针《第一篇》
#include <iostream>#include <memory>using namespace std;//循环引用问题template <typename T>class Node{public: Node(const T& value) :_pPre(NULL) , _pNext(NUL...
2018-11-05 16:16:13
203
转载 C++路线
初级一C++运行原理,C++源代码构成;类的构成与写法能用C++书写简单的类;能用面向对象的方法来思考和解决简单问题5初级二头文件;循环和各种逻辑语句;类的深入;继承能编写一些较为复杂的逻辑方法;能用面向对象的思考方法解决较为复杂的模型5初级三数组;指针,常量,指针常量和常量指针的区别;堆内存和栈内存;结构体和枚举类型灵活运用数组;深入掌握指针应用理解内存管理;熟...
2018-08-19 20:14:19
854
转载 QTableWidget的使用和美工总结
基本外观设置FriendTable->setFrameShape(QFrame::NoFrame); //设置边框FriendTable->setHorizontalHeaderLabels(HeadList); 设置表头FriendTable->setSelectionMode(QAbstractItemView::SingleSelection); 设置选...
2018-07-24 13:53:04
1135
转载 Qt 信号-槽的同步与异步处理
通常使用的connect,实际上最后一个参数使用的是Qt::AutoConnection类型:Qt支持6种连接方式,其中3中最主要:1.Qt::DirectConnection(直连方式)(信号与槽函数关系类似于函数调用,同步执行) 当信号发出后,相应的槽函数将立即被调用。emit语句后的代码将在所有槽函数执行完毕后被执行。 2.Qt::QueuedConnection(排队方式)(...
2018-06-13 16:03:15
686
转载 QT 常用类总结
转载:http://www.verydemo.com/demo_c278_i1869.html 使用Qt进行编程必须对 Qt 中常用的类有一定的了解。这些类可以分成两种:一种不是从 QObject 类派生出来的,用来表示各种基本的数据对象,如字符串、图像、字体等,这里将它们通称为基本类;另一种都是从 QWidget 类派生出来的,它们表示一个顶级窗口或者窗口部件,这里将它们统称为窗口类...
2018-06-13 10:26:10
1821
转载 QT中QT Widgets Application中QWidget、QDialog及QMainWindow的区别; QCoreApplication和QApplication的用法及区别
QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的,并且它们按Z轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例...
2018-06-13 09:30:34
2760
转载 八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间...
2018-06-02 13:45:55
492
转载 C++ string类的实现
学了C++的重载机制之后,忍不住去探究一下C++中string类的内部实现过程。于是仿照这string类的功能,写了一个自己的string类练练手。可能还有些东西并未完善,后面再不断去完善。参考代码如下所示:Main.cpp[cpp] view plain copy/***************************************************** Copyright (C...
2018-06-02 13:17:36
6789
转载 C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
生产者消费者问题是多线程并发中一个非常经典的问题,相信学过操作系统课程的同学都清楚这个问题的根源。本文将就四种情况分析并介绍生产者和消费者问题,它们分别是:单生产者-单消费者模型,单生产者-多消费者模型,多生产者-单消费者模型,多生产者-多消费者模型,我会给出四种情况下的 C++11 并发解决方案,如果文中出现了错误或者你对代码有异议,欢迎交流 ;-)。单生产者-单消费者模型顾名思义,单生产者-单...
2018-06-02 13:13:10
868
转载 STL源码笔记(18)—平衡二叉树AVL(C++封装+模板)
AVLTree平衡二叉树在几年前刚学数据结构时,AVL-Tree只是一个仅仅需要掌握其概念的东西,今非昔比,借看STL源码剖析的契机希望从代码层面将其拿下。1.简介二叉查找树给我们带来了很多方便,但是由于其在有序序列插入时就会退化成单链表(时间复杂度退化成 O(n)),AVL-tree就克服了上述困难。AVL-tree是一个“加上了平衡条件的”二叉搜索树,平衡条件确保整棵树的深度为O(log n)...
2018-06-02 13:10:23
367
1
转载 二叉树的C++实现
数据结构与二叉树类的定义我采用链式存储结构来表示二叉树,每一个二叉树节点包含树节点的值、树的左孩子指针、树的右孩子指针:class BiNode{public: char data; struct BiNode *lchild,*rchild;};12345那么对于一个二叉树来说,只需要存放指向树根节点的指针即可,另外还需要声明二叉树的一些功能,比如遍历方法、求树高等(BiTr...
2018-06-02 13:07:54
1948
转载 链表C++实现
节点定义:typedef struct node { int data; struct node *next;}NODE;1234类定义class LinkList{private: NODE *head;public: LinkList() { head = NULL; } ~LinkList(); bool clearSqList();...
2018-06-02 13:06:50
504
转载 一直没整理字符串的东西,面试必备
strncpy(a,b,5); a[5]='\0'; char a[10]; memset(a,'#',sizeof(a)); a[10]='\0'; 刚开始学C/C++时,一直对字符串处理函数一知半解,这里列举C/C++字符串处理函数 ,希望对初学者有一定的帮助。 C: char st[100]; 1. 字符串长度 strlen(st); 2....
2018-05-30 22:50:18
173
转载 细说UI线程和Windows消息队列(经典)
在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。 首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。 其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种特殊的对象——窗体,同时,还一并负责创建窗体上的各种控件。 窗体和控件大家都很熟悉了,...
2018-05-18 14:38:46
6833
2
转载 软考系统设计架构师经验与教训分享
系统架构设计师考试经验和教训分享 但愿你是计算机专业的学生,考这个证,有助于提升你的综合能力,但是如果想通过考这个证,就能拿几十万的年薪,这是不可能的。请回到现实中来,在国内一个证就能改变我们的人生的,几乎没有,也只有出生证、结婚证和死亡证了。所以,不要迷信它!!!因为在国内,真正合格的架构师真的很少,而且只有在大公司搞开发、设计和优化的,对大客户量,大访问量,大并发量有持续研发经验的,对架构...
2018-05-18 14:22:35
2127
13
转载 windows消息处理机制
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录(一般在 C/C++/汇编 中称为“结构体”)中包含了消息的类型以及其他信息。例如,对单击鼠标所产生的消息来说,这个记录(结构体)中包含了单击鼠标的消息号(WM_LBUTTONDOWN)...
2018-05-18 14:14:50
641
转载 C++动多态实现之虚函数与虚表指针
1、静多态与命名倾轧,动多态与虚函数:(1)概述: 我们知道,C++的多态有静多态(Static polymorphism)与动多态(Dynamic polymorphism)之分,静多态是依靠函数重载(function overloading)实现的,而且这种依靠函数重载的多态的实现是采用命名倾轧(关于命名倾轧可参考:C++函数重载与重载原理:命名倾轧 )的方式,是在编译阶段就已经完成了的;...
2018-05-17 15:17:23
697
转载 Linux段错误及GDB Coredump调试方法详细
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如...
2018-04-04 15:33:31
780
原创 Eclipse CDT c++支持C++11
最近要在Linux 环境下面写一些代码,需要支持C++11,可是CDT 不认识C++11的特性,看了很多网上的配置资料,各种版本下面还是不一样,Eclipse 16.04 CDT 9.4,GCC 5.4首先创建一个C++ project,写点C++11 的代码,出现红色波浪线;然后右击项目-》Properties->C/C++ Build ->Settings ->Tool Se...
2018-02-26 20:30:27
273
转载 epool惊群问题的一个解决方案(利用SO_REUSEPORT)
在前段时间公司开发的一个项目中,需要使用多个进程监听同一个端口提高性能,这样的需求需要我们解决惊群问题。 在早些时候,我们是不能在多个子进程中listen、bind同一个socket端口的。通常的做法会在主进程中对端口进行listen、bind,然后把它同时扔进每个子进程维护的epool池中。 在这种情况下,当一个客户端请求来到服务端,会导致多个子进程的epool监听同时被唤醒...
2018-02-24 23:13:54
1271
转载 Linux accept()/epoll_wait()惊群问题与解决方案
问题的来源:参考《UNP 第三版》第30章“客户/服务器设计范式”中“30.6 TCP预先派生子进程服务器程序”// 为便于说明问题,代码已简化int main(int argc, char **argv){ int listenfd = Tcp_Listen(); for (int i = 0; i < nchildren; i++){ if ((pi...
2018-02-24 23:13:04
737
转载 c/c++调用JAVA
JNI允许您从本机代码内调用 Java 类方法。要做到这一点,通常必须使用 Invocation API 在本机代码内创建和初始化一个 JVM。下列是您可能决定从 C/C++ 代码调用Java 代码的典型情况: 1.希望实现的这部分代码是平台无关的,它将用于跨多种平台使用的功能。 2.需要在本机应用程序中访问用 Java 语言编写的代码或代码库。 3.希望从本机代码利用标准 Ja...
2018-02-23 15:13:37
11229
原创 DBO与DB_OWER
最近读了几篇博客,关于DBO 与DB_OWER ,做下记录DBO是一个默认的权限概念,它将数据库的访问权限抽象,并默认定义出来形成的架构(Schma),DB_OWER是指的具体用户,和所拥有的权限,而他们的区别是角色的性质,角色可以属于默认的架构DBO 也可以是属于DB_OWER,即可用DBO系统级架构,又可用DB_OWER
2018-01-28 14:54:43
447
转载 c++ 11 常用语法
1 新类型C++ 11新增了long long和unsigned long long,以支持64bit宽度; 新增char16_t和char32_t以支持16位和32位字符表示; 增加了“原始”字符串。 2 初始化C++ 11扩展了大括号{}的适用范围,既可以用于基本类型,也可以用于自定义类型:int x = {5};couble y
2017-12-17 17:58:53
854
转载 右值引用
概述 右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的:int i = 0;int& j = i; 这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,对右值进行绑定的引用就是右值引用,他的语法是这样的A&&,通过双引号来表示绑定类型为A的右值。通过&&我们就可以很方便
2017-12-12 13:51:29
306
转载 C++ Lambda表达式用法
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下:[函数对象参数] (操作符重载函数参数) mutable或exception声明 -> 返回值类型 {函数体}可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、-> 返回值类型、{函数体}。下面分别进行介
2017-12-10 18:31:21
646
转载 函数重载(overload)、函数覆盖(override)与隐藏
“overload”翻译过来就是:超载,过载,重载,超出标准负荷;“override”翻译过来是:重置,覆盖,使原来的失去效果。先来说说重载的含义,在日常生活中我们经常要清洗一些东西,比如洗车、洗衣服。尽管我们说话的时候并没有明确地说用洗车的方式来洗车,或者用洗衣服的方式来洗一件衣服,但是谁也不会用洗衣服的方式来洗一辆车,否则等洗完时车早就散架了。我们并不要那么明确地指出来就心知肚明,这就有重
2017-09-02 21:53:11
472
转载 闪烁
用MFC如何高效地绘图 显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。 而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单, 只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。 我想就我长期(呵呵当然也只有2年多
2017-08-03 13:51:44
281
转载 C++任务队列与多线程
很多场合之所以使用C++,一方面是由于C++编译后的native code的高效性能,另一方面是由于C++优秀的并发能力。并行方式有多进程 和多线程之分,本章暂且只讨论多线程,多进程方面的知识会在其他章节具体讨论。多线程是开发C++服务器程序非常重要的基础,如何根据需求具体的设计、分配线程以及线程间的通信,也是服务器程序非常重要的部分,除了能够带来程序的性能提高外,若设计失误,则可能导致程序复杂而
2017-07-30 23:13:21
2120
转载 skynet任务调度分析
skynet任务调度分析博客分类: 并发luaskynet 云风同学开源的skynet,当前规模是8K+ C代码和2K+ lua代码,实现了一个多线程高并发的在线游戏后台服务框架,提供定时器、并发调度、服务扩展框架、异步消息队列、命名服务等基础能力,支持lua脚本。单服务器支持10K+客户端接入和处理。 我个人比较关注
2017-07-30 03:51:07
713
转载 关于异步与多线程的区别
比如在在Fn函数中调用PostMessage,而在MainWndProc函数中处理消息: void Fn() { ...... PostMessage(参数); FncPrint(); ...... } LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARA
2017-07-26 20:24:12
272
转载 机器学习路线
1. 引言也许你和这个叫『机器学习』的家伙一点也不熟,但是你举起iphone手机拍照的时候,早已习惯它帮你框出人脸;也自然而然点开今日头条推给你的新闻;也习惯逛淘宝点了找相似之后货比三家;亦或喜闻乐见微软的年龄识别网站结果刷爆朋友圈。恩,这些功能的核心算法就是机器学习领域的内容。套用一下大神们对机器学习的定义,机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,
2017-07-18 12:29:50
277
转载 采用ubuntu系统来安装tensorflow
转自http://www.cnblogs.com/ljy2013/p/5491680.html验证步骤没有问题最近在学习google新开源的深度学习框架tensorflow。发现安装它的时候,需要依赖python2.7.X;我之前一直使用的linux是centos。而centos不更新了,里面的自带的python一般都是python2.6以下的。不仅如此,系统里面很多组件又依赖py
2017-07-16 23:30:04
594
转载 绘图
CDC双缓冲绘图一、双缓冲实现过程如下: 1、在内存中创建与画布一致的缓冲区 BufferBmp=new Graphics::TBitmap(); BufferBmp->Canvas->Handle=CreateCompatibleDC(Canvas->Handle); BufferBmp->Width=Width
2017-07-03 19:02:25
544
转载 高并发网络编程之epoll详解
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select
2017-06-24 13:43:17
75342
19
原创 std::condition_variable
比较常见的一个使用 std::condition_variable 场合就是线程池的消息队列。逻辑线程(可能多个)将消息推入消息队列,线程池中的工作线程(多个)会从消息队列中取出消息进行处理,如果队列中没有消息则进入睡眠状态等待消息。本文将通过这种消息队列的实现,来分析如何使用 std::condition_variable 以及使用过程中的注意事项。先看下这个消息队列的最终实现:vo
2017-06-20 20:00:22
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人