自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 信号和槽-03

一、信号和槽的简介1、需要四个参数:以点击按钮关闭窗口来进行演示信号的发送者:相当于按钮发送的具体信号内容:相当于点击的动作信号的接收方:相当于该窗口对信号进行处理操作(就是指槽):相当于关闭窗口2、需要connect进行连接信号发送方和信号接收方之间本身是没有关联的。信号槽的优点就在于松散耦合的方式,因此需要connect来进行连接,将两端进行耦合在一起。3、通过点击关闭窗口来进行演示#include "mywidget01.h"#include"mypushbutton.h" /

2020-07-16 23:12:32 458 1

原创 Qt创建按钮及内容-02

创建按钮及对应的内容1、添加的代码一般都是写在源文件中对应的构造函数中/* * 在应用程序上创建一个按钮 * 一般代码会写在构造函数中*/#include "mywidget01.h"#include<QPushButton> //要添加包含对应控件的头文件myWidget01::myWidget01(QWidget *parent) : QWidget(parent){ /* 第一种方式创建按钮 */ //创建一个按钮,即new一个对象 Q

2020-07-15 23:20:22 1502

原创 Qt基础简介-01

一、常用快捷键ctrl + /:注释ctrl + r:运行ctrl + b:编译ctrl + f:查找F1:选择目标后帮助文档ctrl +i:代码自动对齐F4:同名文件.h和.cpp之间的切换二、创建Qt项目1、选择桌面应用程序2、在Qt Creator中来创建项目时选择MinGW编译套件,MSVC2017是在VS中创建项目时的编译器3、类信息的设置1)QWidget是 QMainWindow和QDialog的父类。选择QMainWindow类时创建的图形窗口默认会有菜单栏

2020-07-15 22:35:15 374

原创 关于动态多态的错题分析

C++中关于动态多态自己的理解仍然太浅了,对于多次在基类和派生类中来回调用的一些情况,仍然会产生动态多态的情况。求如下程序的输出结果:#include<iostream>#include<string>using namespace std;class Base{public: virtual void Send() { cout << "\nSend_Base:" << mVal << endl; } ~Base()

2020-06-18 22:33:37 260

原创 sizeof、size、strlen、length 用法总结

一、sizeof 用法1、基本用法sizeof 为运算符,其结果是求对应参数的字节大小,它的值是在编译的时候就计算完成了。所以它不能用来计算动态分配内存空间的大小。2、应用实例(1)、常见示例// 1、求各种类型所占字节数sizeof(int); //求整型所占的字节数,结果为4个字节sizeof(char); // 求字符型所占字节数,结果为1个字节sizeof(double *); // 求指针类型所占的字节数,由于指针只是存放地址,所以占4个字节,与指针所指的类型无关。/

2020-06-14 12:32:52 1379

原创 空目录git push到GitHub上

1、关于空目录git只能追踪文件的变化,而不能追踪空目录。所以如果一个目录下没有任何文件,那么git是不允许将其push到远程仓库GitHub上的。 此时git add和git commit也会提示如下内容,表示目前的分支和远程仓库的分支是一样的,且工作树是干净的,无任何东西提交。2、git push空目录到GitHub上此时有可以改变空目录,将其push到GitHub上区。主要方法是在该空目录下添加一些辅助的文件来让其非空。如添加 README.md 或者.gitkeep 等文件来实现。一般是添

2020-05-31 21:51:06 2569

原创 清除字符串string中的空格

1、只清除字符串首尾的空格方法一:调用string的成员函数来进行操作#include<iostream>#include<string>#include<sstream>using namespace std;int main(){ //str字符串首尾各有两个空格。 string str = " hello this is just a test. "; int len1 = str.length(); auto s1 = str.fin

2020-05-24 18:52:03 1477 1

原创 pair 类型总结

1、pair 简介pair 定义在头文件 utility 中,一个pair保存两个数据成员 , 分别命名为 first 、second ,成对出现的数据,可以利用对组来返回这两个数据。与其他标准库类型不同,pair数据成员是 public 的。2、pair的基本操作标准库定义的pair操作如下:pair<T1, T2> p:创建一个空的pair对象pair<T1, T2> p(v1, v2):用v1、v2来初始化pair对象pair<T1, T2> p={v

2020-05-24 17:08:47 992

原创 STL标准库的总结

一、STL基础1、STL是为了提高代码的可重复使用而产生,提供了一个标准的模板库,可供直接调用。2、为了建立数据结构和算法的一套标准,而诞生了STL3、STL从广义上可以分为:容器(container)、算法(algorithm)、迭代器(iterator)4、容器和算法之间通过迭代器进行连接。5、STL几乎所有的代码都采用了模板类或者模板函数。二、STL六大件STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器1、容器:各种数据结构,如 vector、

2020-05-23 18:40:40 416

原创 sstream —— string流中读写数据

sstream 头文件定义的三个类型来支持IO操作。istringstream :从string中读取数据ostringstream :向string中写入数据stringstream:即可以从string 中读取数据,也可以向其中写入数据。sstream的一些特有操作// ssm01是一个未绑定的stringstream对象stringstream ssm01;// ssm02是一个stringstream对象,保存字符串 s 的一个拷贝stringstream ssm02(s);

2020-05-18 19:56:55 1444

原创 fstream —文件读写操作

一、fstream 文件输入输出流1、文件读写的三种类型ifstream:从一个给定文件中读取数据 。ofstream:向一个给定的文件中写入数据fstream:可以读写给定的文件。它可以用IO库中的<<、>>、getline()等方式来读写文件。其中getline()只能用来读取字符串,不可以读取数值类型。2、fstream 的一些操作当一个 fstream 对象被销毁时,close函数会被自动调用。// 创建一个未绑定的文件流fstream ftm01;/

2020-05-18 18:25:53 20029 1

原创 iostream输入输出流 —— cin、cout

一、cin 读取输入流cin是istream类的对象,即C++的标准输入流对象。主要用于从键盘等输入设备上读取数据。其常用的读取数据流的方法有:cin>>、cin.get()、cin.getline()1、cin>> 方式(1)、该方式每次读取数据流时,一旦遇到空格、换行符,则其后的内容都被舍弃无法读取。只能读取这些分隔符之前的内容。string s1;cin >> s1 ;cout << "s1= " << s1 << e

2020-05-17 22:07:05 2427

原创 IO库简介

一、 IO类1、在IO类中有三个独立的头文件,如下:iostream:定义了用于读写流的基本类型fstream:定义读写命名文件的类型sstream:定义读写内存中string对象的类型2、IO库类型和文件:头文件类型iostreamistream:从流中读取数据ostream:向流中写入数据iostream:读写流fstreamifstream:从文件中读取数据ofstream:向文件中写入数据fstream:读写文件sstreamistringstr

2020-05-17 20:42:59 1490

原创 Matlab 基础绘图

一、plot函数画图1、plot(x,y,‘str’)函数x:第一个参数是横坐标y:第二个参数是纵坐标‘str’:第三个参数用来控制线形和线的颜色%: 之后的内容为注释,为单行注释。Ctrl+R:注释快捷键Ctrl+T:取消注释快捷键。%{注释的内容,用于多行%}用来控制线形和颜色的字符hold on:多张图在同一坐标中,保留前面的图(matlab会默认的覆盖掉之...

2020-04-30 10:21:01 356

原创 ICMP协议的命令—— ping 、pathping、tracert

一、ping 命令返回的结果time :是查看网络的延迟。TTL:是数据包的生存时间,初始值是一定的。 一般每过一个路由器就减1,最后一个计算机看见的就是其剩下的生存周期时间。当其为减为0的时候,路由器就不再转发该数据包了。它的作用是防止数据包在路由器之间循环的转发。可以根据TTL来大致的判断对方的系统,如:Linux:初始 TTL = 64Windows:初始 TTL = 128...

2020-04-04 16:51:13 1196

原创 计算机网络七层模型

一 、OSI 参考模型(7层)1、具体的7层应用层: 所有能产生网络流量的程序都是应用层表示层: 在传输之前是否进行加密或压缩处理、或用二进制、ASCll 等形式表示会话层: 服务端和客户端会有联系,传输。可以用来查木马:netstat -n 可以查看目前的有哪些会话建立,哪些中断。传输层: 可靠传输、流量控制、不可靠传输网络层: 负责选择最佳路径、规划IP地址数据链路层: 数据...

2020-03-23 21:41:06 5583

原创 C++中的 static 关键字

类有时候需要它的一些成员与类本身直接相关,而与类的各个对象之间无需保持联系,此时就可以将其声明为静态成员。静态成员属于整个类,而不是某个对象。可以通过类名来直接调用其静态成员,无需通过类的对象来进行访问。静态成员变量只存储一份供所有对象共用。1、静态成员的声明和定义class Test{public: //带默认形参的构造函数,默认的形参必须在形参列表的最后。 Test(int a=8...

2020-03-22 22:52:09 291

原创 滑动窗口的最大值(42)

题目给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1} 及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,...

2020-03-21 20:57:25 143

原创 二叉树搜索第k个节点(41)

题目【给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4】1、分析二叉搜索树的左子树都小于根节点,右子树都大于根节点。且其中序遍历刚好是由大到小的顺序,所以用中序遍历来对二叉搜索树进行遍历,同时统计第k大的节点2、代码/*struct TreeNode { int val; stru...

2020-03-21 19:53:07 234

原创 构建乘积数组(40)

题目1、分析一种方法是分别连乘 n−1n-1n−1 个数字,得到 B[i],该方式的时间复杂度为 O(n2)O(n^2)O(n2) ,并不是最好的方法。改用另一种方式,由于 B[i]=A[0]∗A[1]∗⋅⋅⋅A[i−1]∗A[i+1]∗⋅⋅⋅A[n−1]B[i]=A[0]*A[1]*···A[i-1]*A[i+1]*···A[n-1]B[i]=A[0]∗A[1]∗⋅⋅⋅A[i−1]∗...

2020-03-21 10:54:36 119

原创 字符串转换成整数(39)

题目【将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0】1、分析将字符串转换成数字,需要考虑各种边界条件。字符串前面有 加减号 的字符串前面有空格的表示的数字溢出的2、代码class Solution {public: int StrToInt(string str) { int len=...

2020-03-20 23:41:45 196

原创 不用加减乘除做加法(38)

题目【写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号】1、分析由于不能使用加减乘除,所以只能使用位运算来进行解决。将数字都转换成二进制来进行位运算。首先将两个数字各位进行 异或 运算,此时未考虑两个都是 1 的数字进位。再将两个数字各位进行 与 运算,来获取进位的情况最后再将进位的数字加到前一位即可2、代码class Solution {pub...

2020-03-20 21:53:41 105

原创 求1+2+3+...+n(37)

题目【求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)】1、分析可以通过将累加的方法放在类的构造函数中,然后创建类的n个对象,则会调用n次构造函数,从而实现了累加求和。注意:类的静态成员变量和静态成员函数在类中只有一份,为类的所有对象所共有。类的静态成员是属于类的,而非某一个对象,所以调用类的静...

2020-03-20 20:51:34 250

原创 圆圈中最后剩下的数字(36)

题目【首先,让小朋友们围成一个大圈,小朋友的编号是从0到n-1。然后随机指定一个数m,让编号为0的小朋友开始报数。每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友,求最后一个小朋友的编号。如果没有小朋友,请返回-1】方法一1、分析该题是约瑟夫环问题,可以采用环形链...

2020-03-20 18:11:32 259

原创 扑克牌的顺子(35)

题目【LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王。他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子。“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So ...

2020-03-19 10:57:08 229

原创 翻转单词顺序(34)

题目1、分析首先将每个单词进行翻转再将以上的结果进行再次翻转,即可得到最终的结果2、代码class Solution {public: string ReverseSentence(string str) { int len=str.length(); if(len<0) return NULL; ...

2020-03-17 00:06:44 348

原创 左旋字符串(33)

题目【汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”】1、分析对于字符串的左移,可以看成字符串的多次翻转的结果。如题中的字符串左移3位,可以先将字符串分成两部分: abcXYZ...

2020-03-16 23:41:42 167

原创 和为s的两个数(32)

题目【输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,让输出的两个数的乘积是最小的】1、分析用两个指针分别指向数组的第一个元素和最后一个元素,若两数的和大于s ,则尾指针前移;若两数的和小于s,则头指针后移。2、代码class Solution {public: vector<int> FindNumbers...

2020-03-16 22:38:26 171

原创 和为s的连续正数系列(31)

题目【输出所有和为S的连续正数序列(至少含有两个数)。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序】1、分析由于数是连续的正数,且至少为两个数,所以最小的组合为 [ 1 , 2 ],和最小为3。可以使用两个数 small 和 big 分别表示序列的最小值和最大值。首先把small 初始化为1,big初始化为2。如果从small到big的序列和大于s ,则可以从序列中去掉较小的...

2020-03-16 22:17:19 104

原创 数组中只出现一次的数字(30)

题目【一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。】方法一:采用STL中的multiset 容器1、分析因为数组中只有两个数字只出现一次,其他数字都出现两次,可以使用 multiset 中的 count() 函数来找出。2、代码class Solution {public: void FindNumsAppearOnce(ve...

2020-03-16 17:56:19 156

原创 平衡二叉树(29)

题目【输入一棵二叉树,判断该二叉树是否是平衡二叉树】1、分析平衡二叉树:如果某二叉树中任意节点的左、右子树深度相差不超过1,那么它就是一颗平衡二叉树。可以使用递归的方式将每个节点的左右子树的深度进行遍历,再进行计算是否为平衡二叉树。2、代码class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) ...

2020-03-15 23:37:01 131

原创 二叉树的深度(28)

题目【输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度】1、分析二叉树的深度为其左右子树的深度分别加上1(若左右子树存在的话),然后用递归来处理。2、代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;...

2020-03-15 21:06:03 355

原创 数字在排序数组中出现的次数(27)

题目一:数字在排序数组中出现的次数【统计一个数字在排序数组中出现的次数。如 {1,2,3,3,3,3,4}和数字3,由于3出现的4,所以输出4】方法一:1、分析直接遍历数组,由于数组已经排好序了,所以当数组中出现了数字 k 时就开始统计其出现的次数。该方法的时间复杂度为 O(n)O(n)O(n) ,还有更快的二分法。2、代码class Solution {public: in...

2020-03-14 23:19:14 228

原创 两个链表中的第一个公共节点(26)

题目【输入两个链表,找出它们的第一个公共结点】1、分析使用暴力法是将一个链表(长为m)中的每个元素分别与另一个链表(长为n)中的元素进行比骄,时间复杂度为 O(m∗n)O(m*n)O(m∗n)进一步分析可知,两个链表有一个公共的节点,则从某一节点开始,它们的 p->next 相同(即指针指向同一个节点)。同时由于该链表为单向链表,所以从第一个公共节点开始,之后它们所有的节点...

2020-03-14 21:38:58 167

原创 数组中的逆序对(25)

题目【在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007】如输入:7 5 6 4输出:51、分析(1)、采用暴力方法是将每个元素分别与后面的元素进行比较,此时的时间复杂度为 O(n2)O(n^2)O(n2) ,不是最好的方法,所以采用其...

2020-03-14 19:43:41 242

原创 常用算法排序(04)—— 归并排序

一、 归并排序的基本思想归并排序是利用先递归进行分解,将一个规模为 nnn 的问题分解成两个规模为 n/2n/2n/2 的问题,再不断的继续进行递归分解成最终规模为111的问题。然后再逐渐的从小规模结果进行合并,最终得到完整的结果。也即分而治之的思想。其图解如下:原图地址二、算法分析归并排序使用了空间换时间的方式,用一个辅助数组来存储每次排序后的结果,然后再将其复制到原数组对应的位置上...

2020-03-12 22:44:58 239

原创 范围for

基本用法1、范围for是C++11的新特性,语法如下:for(declaration:expression) statement;范围for迭代的范围是确定的,在使用的过程中无需担心下标越界的情况。可以遍历定义了begin() 和 end() 方法,且返回该方法返回迭代器的类对象。如STL中...

2020-03-10 16:37:56 651 1

原创 第一个只出现一次的字符(24)

题目【在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)】1、分析(1)、一种思路是将每个字符分别与后面的字符进行比较,若没有与它相同的则就是该字符。这种方法的时间复杂度是 O(n2)O(n^2)O(n2)。可以采用令一种方法,使用空间换时间。创建一个数组用来存放每个字符出现的次数...

2020-03-10 08:52:26 141

原创 丑数(23)

题目【把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数】方法一:1、分析如果使用遍历每个数的方式,则会大大的降低效率。所以采用空间换时间的方式,将所有的丑数进行排序,然后直接可以用o(1)o(1)o(1)的时间复杂度来查出第N个丑数。因为丑数的质因子只有2...

2020-03-09 18:38:08 414

原创 sort() 函数的用法

sort 函数的基本知识1、sort 函数位于头文件 #include<algorithm> 中,是C++标准库中的函数。2、sort 函数原型如下,包含三个参数分别为void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);first :第一个是待排序序列的起始地址。l...

2020-03-08 21:20:52 1207

空空如也

空空如也

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

TA关注的人

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