自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

转载 QT学习之窗口部件

对话框--QDialog模态对话框与非模态对话框  模态对话框:就是相当于没关闭它之前,不能再和该应用程序的其他窗口进行交互(比如新建项目时弹出的对话框)  非模态对话框:可以与它交互,也可以与该程序中的其他项目进行交互,比如文档编辑器中的查找替换对话框。  实现方式:模态对话框---直接调用exec(),非模态对话框---先ne...

2017-03-07 16:28:00 181

转载 Primer 三四五章

序言看了看表,再看了看书,2个小时就没啦(又到了吃中饭的时间,O(∩_∩)O哈哈~)。一个上午感觉啥也没干呢,不过还是从书上看到了一些东西,对于这些基础的知识,还是有些东西没有记得很深,所以还是花了许久的时间回味总结。三章内容主要是挑出了自己不是很熟悉和很懂的地方或者是面试中会用到的一些难点来记录。string类这一章大体上是一些基础,没啥...

2017-03-06 14:18:00 195

转载 Ubuntu 16.04安装MySQL及遇到的问题解决方案

使用以下命令即可进行MySQL安装:sudo apt-get install mysql-server上述命令会安装以下包: apparmor mysql-client-5.7 mysql-common mysql-server mysql-server-5.7 mysql-server-core-5.7 因此无需再安装mysql-clien...

2017-03-03 09:53:00 212

转载 QT学习之多线程

【为什么要用多线程?】传统的图形用户界面应用程序都只有一个执行线程,并且一次只执行一个操作。如果用户从用户界面中调用一个比较耗时的操作,当该操作正在执行时,用户界面通常会冻结而不再响应。这个问题可以用事件处理和多线程来解决。【Linux有线程的概念吗?】传统的UNIX系统也支持线程的概念,但一个进程里只允许有一个线程,这样多线程就是多进程。Linux下的P...

2017-03-02 16:22:00 152

转载 QT学习之事件处理

Qt事件机制Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.。Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。Qt事件的类型很多, 常见的qt的事件如下:键盘事件: 按键按下和松开.鼠标事件: 鼠标移动,鼠标按键的按下和松开.拖放事件: 用鼠标进行拖放.滚轮事件: 鼠标滚轮滚动.绘屏事件: 重绘屏幕的某些部分.定...

2017-03-02 14:54:00 881

转载 QT学习之常用类的总结

QApplication 应用程序类     管理图形用户界面应用程序的控制流和主要设置 QPalate   QLabel 标签类          提供文本或者图像的显示  QPushButton 按钮类        提供了命令按钮 按钮的一种  QButtonGroup 按钮组合类     按钮组 相关按钮的组合  ...

2017-03-02 09:23:00 146

转载 C++中的深拷贝和浅拷贝 QT中的深拷贝,浅拷贝和隐式共享

下面是C++中定义的深,浅拷贝当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:(1)一个对象以值传递的方式传入函数体(2)一个对象以值传递的方式从函数返回(3)一个对象需要通过另外一个对象进行初始化。如果在类中没有显...

2017-02-22 14:58:00 639

转载 QT之Variant

QVariant识别类型的注册  QVariant识别类型的注册QVariant为一个万能的数据类型--可以作为许多类型互相之间进行自动转换。将C++变为弱数据类型成为可能--也是许多控件中用户定义数据的类型--因为无法预先知道用户附加到控件的数据是什么类型。而QT的Variant类型默认识别的类型都非常强制--只支持已注册的类型--如何将一个自己定义的结构或...

2017-02-22 10:45:00 214

转载 STL之erase用法

vector::erase():从指定容器删除指定位置的元素或某段范围内的元素vector::erase()方法有两种重载形式如下:1、iteratorerase(iterator_Where);v1.erase(v1.begin());//删除v1中的第一个元素vec.erase(vec.begin()+2);删除第3个元素2、iteratorera...

2017-02-14 13:50:00 484

转载 实时图像压缩系统

软件基本介绍 Bolt是一个实时裁剪压缩图片服务器,其比nginx的image_filter快2倍以上,主要是因为Bolt对一张图片只做一次处理,就算在处理图片的过程中,其他的客户端也在请求此图片,Bolt也能保证只有一个线程在处理此图片。另外Bolt替换缓存机制,处理过的图片不再进行第二次处理,除非内存不足的时候,Bolt才会处理LRU算法来删除缓存中的...

2017-02-12 19:57:00 211

转载 libevent学习

libevent是一个开源的事件控制机制,如果不想陷入多进程或多线程的困扰,那么libevent将是很合适的工具。libevent提供了很多的API来管理和控制事件,可用于设计读、写、信号、定时等各种类型的事件处理,其使用主要有一下几个步骤: 1、首先需要初始化一个event_base结构体,它是libevent的入口,形如 struct event_base*...

2017-02-12 17:01:00 70

转载 SIGPIPE信号解析

当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试.但是服务器总是莫名退出,没有core文件.sig...

2017-02-12 15:43:00 92

转载 守护进程详细总结

1、 守护进程的概念:守护进程(Daemon)是一种运行在后台的一种特殊的进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在Linux中,每个系统与用户进行交流的界面成为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台...

2017-02-12 15:38:00 88

转载 百度音乐下载地址解析

软件初步介绍:为什么我要干这档子事情啊?  一个字,懒,太懒,懒得自己去找,懒得冲会员去下载一些高品质歌,所以干脆写个小东西来搞一搞吧。直接了当,干脆直接balbala一堆歌曲源下载地址,然后丢给迅雷去帮我下载,想想都是很爽的(全站歌曲下载我的电脑撑不住啊)。我也是很不情愿把钱交给程序猿啊,那就来解析解析吧。命令行执行...

2017-02-12 15:08:00 1549

转载 (转)TinyHttp源码剖析

tinyhttpd 是一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。 看完所有源码,真的感觉有很大收获,无论是 unix 的编程,还是 GET/POST 的 Web 处理流程,都清晰了不少。废话不说,开始我们的 Server 探索之旅。 (水平有限,如有错误之处,欢迎指正) 项目主...

2017-02-12 13:45:00 91

转载 C++11新特性之auto

auto的使用c++11引入了auto类型说明符,auto让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值。使用auto也能在一条语句中声明多个变量,因为一条声明语句只能有一个基本数据类型,所以该语句中所有变量的初始基本数据类型都必须一样:eg: auto i=0,*p=& i; //正确 auto sz=0,pi=3.14;//...

2017-02-11 18:24:00 119

转载 (转) c/c++调用libcurl库发送http请求的两种基本用法

libcurl主要提供了两种发送http请求的方式,分别是Easy interface方式和multi interface方式,前者是采用阻塞的方式发送单条数据,后者采用组合的方式可以一次性发送多条数据一、Easy interfacelibcurl的easy interface是最基本的用法,简要流程为:1、在主线程中调用curl_global_init(CURL_GLO...

2017-02-11 10:25:00 137

转载 (转)unordered_map与map的对比(C++11新特性)

unordered_map和map类似,都是存储的key-value的值,可以通过key快速索引到value。不同的是unordered_map不会根据key的大小进行排序,存储时是根据key的hash值判断元素是否相同,即unordered_map内部元素是无序的,而map中的元素是按照二叉搜索树存储,进行中序遍历会得到有序遍历。所以使用时map的key需要定义operator...

2017-02-11 08:56:00 55

转载 libevent简单介绍

1简介主页:http://www.monkey.org/~provos/libevent/。libevent是一个事件触发的网络库,适用于windows、Linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。编译库代码,编译脚本会判断OS支持哪种类型的事件机制(select、epoll或kqueue),然后...

2017-02-08 15:48:00 115

转载 libevent入门

花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的。首先给出官方文档吧:http://libevent.org,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果想好好用libevent,看看...

2017-02-08 15:39:00 93

转载 (函数分治法)实现pow函数(x的y次方幂)

题目:实现pow函数。题目分析:因为一个一个乘,循环太大,参考矩阵连乘问题:对于n=4的话,可以得出x的平方,然后平方与平方相乘。节省计算次数。对于偶数的幂,只要x的平方多次递归调用即可;对于奇数的幂,只要n-1,就又变成偶数的幂的形式了,无非就是多乘一个x的问题。代码:class Solution {public: //分治法:分而治之 do...

2017-02-06 13:37:00 673

转载 (数组)大数相乘,相加

题目一:大数相乘。题目分析:两个大数相加,考虑到数据类型不能表示大数,所以用字符串直接处理两个数。两个数字,用一个数逐位的与另一个数相乘,将所得的乘积逐位相加(注意进位的情况)。最后得到的就是所要的数字。因为m位的数乘以n位的数,最多得到m+n的位数,所以用m+n的数组存储最终结果。这个是代码的计算过程图。代码:public String multiply(Strin...

2017-02-06 13:10:00 160

转载 (树)根据排序数组或者排序链表重新构建BST树

题目一:给定一个数组,升序数组,将他构建成一个BST思路:升序数组,这就类似于中序遍历二叉树得出的数组,那么根节点就是在数组中间位置,找到中间位置构建根节点,然后中间位置的左右两侧是根节点的左右子树,递归的对左右子树进行处理,得出一颗BST代码:/** * Definition for binary tree * struct TreeNode { * ...

2017-02-06 11:15:00 193

转载 (合并 重叠数组)练习容器的用法

题目给定间隔的集合,合并所有重叠间隔。例如,给定[1,3],[2,6],[8,10],[15,18]return [1,6],[8,10],[15,18]。题目分析:合并重叠的数组,这里首先是定义排序规则,给所有数组进行排序,然后合并重叠的就行了。代码/** * Definition for an interval. * ...

2017-02-05 11:52:00 105

转载 (动态规划)最小分糖果问题

题目:有N个孩子站在一排。 每个孩子被分配一个评分值。你给这些孩子的糖果满足以下要求: 每个孩子必须有至少一个糖果。 评分较高的孩子比他们的邻居获得更多的糖果。你必须给的最低糖果是什么?题目分析:这个题目其实就是简单的遍历问题。一个打乱的数组,每个数字都有一个特定的属性值,相邻两个数字大的数字比小的数字的属性值大。...

2017-02-05 10:14:00 641

转载 (链表)链表的排序问题

题目一:对链表进行排序。  方法一:利用数组进行排序。效率比较低。  代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next...

2017-02-04 21:11:00 211

转载 (链表)链表和加法的混合

题目:您将获得两个链接列表,表示两个非负数。 数字以相反的顺序存储,并且它们的每个节点包含单个数字。 添加两个数字并将其作为链接列表返回。输入:(2→4→3)+(5→6→4)输出:7 - > 0 - > 8题目分析:这个是给定两个链表,链表各个位置上面的值想加,链表表示的逆向的整数,其实没差都差不多,从链表前面进行相加减。注意进位的情...

2017-02-04 19:33:00 96

转载 (函数)实现strstr函数

题目:实现strstr函数。这个函数原型 strstr(char *a, char *b),在a中是否包含b这个字符串,包含返回第一个子串的位置,否则返回NULL。思路:其实这个就是找子串的问题。特殊情况,当b为空的时候,直接返回a;当b不为空的时候,指定start指针,通过两次循环,逐一对strstr中的子串和b进行匹配,如果b走到末尾,表示找到,start指针指向开始位置...

2017-02-04 18:43:00 168

转载 (字符串动态规划)一个字符串变成另一个字符串的步骤数

题目:给定两个字word1和word2,找到将word1转换为word2所需的最小步骤数。 (每个操作计为1步)。您对单词允许以下3种操作:a)插入字符b)删除字符c)替换字符思路:dp[i][j]指把word1[0..i - 1]转换为word2[0..j - 1] 的最小操作数。边界条件:dp[i][0] = i;...

2017-02-04 17:05:00 2149

转载 (回文串)leetcode各种回文串问题

题目一:最长连续回文子串。  问题分析:回文串顾名思义表示前后读起来都是一样,这里面又是需要连续的。分析这个问题的结构,可以想到多种方法。暴力解决的方式,2层循环遍历得出各个子串,然后再去判断该子串是否回文,这样的话O(N)=n的三次方,还有一种是dp解决。  解题方法一:暴力解决的方法。前面已经讲到了方法,下面给出方法的实现。class Solution {...

2017-02-04 16:13:00 210

转载 (字符串)ZigZag Conversion

【解析】第一次看到这个题目的人,可能不知道ZigZag是什么意思,简单解释一下,就是把字符串原顺序012345……按下图所示排列:发现所有行的重复周期都是 2 * nRows - 2对于首行和末行之间的行,还会额外重复一次,重复的这一次距离本周期起始字符的距离是 2 * nRows - 2 - 2 * i[cpp] view plain cop...

2017-02-04 10:43:00 91

转载 (位运算)两个字符串的位运算

给定两个二进制字符串,返回它们的和(也是一个二进制字符串)。例如,a =“11”b =“1”返回“100”。直接给出代码吧,就是简单的位运算。从后往前逐位相加(编程int类型),carry记录进位情况。最后在判断最后一位情况。主要是考察十进制转为二进制或者二进制转为十进制class Solution {public: ...

2017-02-04 10:38:00 446

转载 (树)根据中序后序构建二叉树

题目:根据中序和后序遍历构建二叉树思路:利用递归加上分治的思想。先找到根节点的值,然后在根据中序遍历找到根节点的左右两边的值,然后在递归的处理左右两边的左右子树。这里的关键在于怎么处理递归的左右子树的范围,代码里面详细解释代码:class Solution {public: TreeNode *buildTree(vector<int> &a...

2017-02-03 21:07:00 137

转载 (回溯法)ip地址的合理性

题目:给定一个只包含数字的字符串,通过返回所有可能有效的IP地址组合来恢复它。例如:给定“25525511135”,return [“255.255.11.135”,“255.255.111.35”]。 (顺序无所谓)代码:class Solution {public: vector<string> re...

2017-02-03 19:46:00 131

转载 (查找)找到数组中的指定值得起始和结束位置

题目:给定整数的排序数组,找到给定目标值的起始和结束位置。您的算法的运行时复杂性必须是O(log n)的顺序。如果在数组中找不到目标,则返回[-1,-1]。例如,给定[5,7,7,8,8,10]和目标值8,return [3,4]。思路:这个题目直接使用容器存储出现查找元素的位置。取出第一个和最后一个即可。代码cl...

2017-02-03 19:28:00 850

转载 (链表)链表的一些合并问题

问题一:合并两个排序的链接列表,并将其作为新列表返回。 新列表应该通过将前两个列表的节点拼接在一起来进行。思路:有两种方式:递归和非递归。我感觉递归的比较简单。给定两个链表,如果l1为空,返回l2,如果l2为空,返回l1.  如果l1节点大于l2,node等于l2当前节点,node->next=(递归调用函数处理)merge(l1,l2->next);代码:...

2017-02-03 19:26:00 150

转载 (回溯法)解决一系列组合问题

题目一: Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.For example,If n = 4 and k = 2, a solution is:[ [2,4], [3,4], [2,3], [1,2...

2017-02-03 14:41:00 198

转载 (BST)升序数组变为BST树

题目:给定一个数组,其中元素按升序排序,将其转换为高度平衡BST。思路:因为是升序数组,那么中间的数字一定是根节点值,然后在对左右两边的数组进行查找根节点的递归。一次处理左右子树。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *lef...

2017-02-03 13:24:00 213

转载 (单链表)单链表的整体逆序和局部逆序

题目一:将单链表翻转。思路:有三种方式。一:用数组存储单链表的值,然后重新逆序赋值,效率较低。二:利用三个指针,在原来的基础上进行逆序。这种方法比较实用,效率也高。三:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。需要新建一个链表,这种方法和第二种差不多。这里我就写出第二种方法,比较实用。...

2017-02-02 22:45:00 215

转载 回溯法实例详解(转)

概念回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 ...

2017-02-02 16:40:00 175

空空如也

空空如也

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

TA关注的人

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