自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 PostMessage(异步)和SendMessage(同步)的区别

PostMessage和SendMessage的区别 1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理...

2018-09-02 20:57:07 627

转载 static和const的区别和用处

const总结 1.常对象:const 类名 对象名[()] 例如const Cdate d1(2008,8,8)d1就是常对象,对象d1中的所有成员的值都不能被修改,定义常对象必须要有初值,不能做左值,如果定义了常对象,则不能调用该对象的非const成员函数,只能访问const成员函数,如果希望成员函数访问常对象,只需要将该成员函数声明为const即可,比如:  vo...

2018-09-02 20:56:28 430

转载 C++中, 为什么需要定义析构函数为虚函数

先构造一个类,如下所示: [plain] view plaincopy#include    #include    using namespace std;   #include        using namespace std;      class Base   {       public:           Base(){ cout<<"...

2018-09-01 21:19:28 7665 3

转载 C++ 多态的实现及原理

C++ 多态的实现及原理C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数  1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。    2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有...

2018-08-19 20:09:20 170

转载 c++的const和static区别

c++的const和static区别const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。      static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。...

2018-08-19 19:17:57 392

转载 Qt之JSON生成与解析

Qt之JSON生成与解析常用的Json库    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScri...

2018-08-18 16:19:50 316

转载 转载:使用 QJsonDocument 处理 JSON

转载:使用 QJsonDocument 处理 JSONQt5 新增加六个相关类:QJsonArray 封装 JSON 数组 QJsonDocument 读写 JSON 文档 QJsonObject 封装 JSON 对象 QJsonObject::iterator 用于遍历QJsonObject的 STL 风格的非 const 遍历器 QJsonPar...

2018-08-18 15:47:11 2316

转载 select、epoll的区别

select、poll、epoll之间的区别总结[整理]  select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则...

2018-08-12 13:21:16 143

原创 通过编程,实现atof函数

相关知识:头文件:#include <stdlib.h>函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str);atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 is...

2018-08-09 09:48:55 1129

原创 通过编程,实现atoi()函数

相关知识:头文件:#include <stdlib.h>atoi() 函数用来将字符串转换成整数(int),其原型为:int atoi (const char * str);【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串...

2018-08-09 09:46:14 4504 1

原创 用两个栈实现一个队列的功能,用C++实现

 思路:假设两个栈A和B,且都为空,可以认为栈A提供入队列的功能,栈B提供出队列的功能,入队列:入栈A出队列:>如果栈B不为空,直接弹出栈B的数据>如果栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据代码如下:#include <iostream>#include <stack>using namespace ...

2018-08-08 09:37:13 666

原创 初始QT 3 -------- 信号、槽、Lamda表达式

新建两个类:MyWidget,NewWidget文件MyWidget.cpp内容为:#include "mywidget.h"MyWidget::MyWidget(QWidget *parent) : QWidget(parent){ // QPushButton b1("b1", this); // 内存管理,当对象被释放的时候,会将它的所有子对象都释放掉 ...

2018-08-08 07:17:09 466

原创 初识QT 2 -------- 创建一个按钮

#include <QApplication>#include <QWidget>#include <QPushButton>int main(int argc, char **argv){ QApplication app(argc, argv); QWidget w; // QT里面 控件 都是继承了 QWidget...

2018-08-08 07:07:02 5897

原创 初识QT 1 --------创建一个窗口

// 界面编程相关的库:gui widgets// QApplication 应用程序类#include <QApplication>// 窗口类#include <QWidget>int main(int argc, char **argv){ // 定义一个应用程序对象,代表当前应用程序 QApplication app(argc,...

2018-08-08 06:54:22 821

原创 约瑟夫环问题

问题描述:设有编号为1,2,……,n的n个(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,才从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,知道剩余1个人为止。当任意给定n和m后,设计算法求n个人出圈的次序。1.用循环链表实现完整代码及注释如下:#include <stdio.h>#include <...

2018-08-02 10:39:45 553 1

原创 链表的排序与逆置

链表所用的数据结构为:typedef struct Node{ int data; struct Node* next;}Node;typedef Node* LinkList;返回链表的长度:int LinkLength(LinkList L){ int length = 0;; while(L->next != NULL) { length++;...

2018-08-01 07:00:57 200

原创 七种排序--------快速排序(Quick Sort)

快速排序的思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。直接看代码:void QuickSort(Sqlist *L){ QSort(L,1,L->length);}因为用到递归,所以把函数封装了了一下。来看QSort()函数:void QSort(S...

2018-07-30 14:33:21 258

原创 七种排序--------归并排序(Merging Sort)

归并排序就是利用归并的思想实现的排序方法。他的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2] (整数)个长度为2或1的有序子序列;再两两归并,......,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序。先来看代码:void MergeSort(Sqlist *L){ MSort(L-&gt...

2018-07-30 11:03:28 377

原创 C++四种强制类型转换总结

1.static_case强制类型转换   > 用于基本类型间的转换,但不能用于基本类型指针间的转换   > 用于有继承关系类对象之间的转换和类指针之间的转换如:int main(){ int i = 0; char c = 'c'; int * pi = &i; char* pc = &c; c = static_cast&lt...

2018-07-27 20:34:20 258

原创 strlen,strcmp,strcpy,strcat,strstr,strchr等字符串处理函数的内部实现

1.strlen();函数介绍(得到字符串的长度):int strlen(const char *s);形参:字符串首地址返回值:字符串长度内部实现:int strlen(const char *s) { int len = 0; while(*s++ != '\0') { len++; } return len;}2.strcmp();函数介...

2018-07-27 15:31:57 292

原创 单链表结构与顺序存储结构的优缺点

存储分配方式:        >顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。        >单链表采用顺序存储结构,用一组任意的存储单元存放线性表的元素。时间性能:        >查找                 >>顺序存储结构O(1)                >>单链表O(n)         &...

2018-07-25 19:44:13 840

原创 链表的相关操作

相关概念:为了表示每个数据元素ai与其直接后继元素a(i+1)之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。然后把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域中存储的信息称作指针或链。这两部分信息组成结点。n个结点链结成一个链表,即为线性表的链式存储结构,因为此链表中每个结点zhi只包含一...

2018-07-25 19:28:37 116

原创 线性表顺序存储相关操作

线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。下面给出关于线性表顺序存储常用操作的代码:#include <stdio.h>#define MAXSIZE 20 //存储空间初始分配量#define true 1#define false 0typedef int ElemType;typedef struct{ Elem...

2018-07-25 12:44:54 178

原创 C语言四大存储区域总结

一、简单的介绍一下四个区域:1.代码区--------主要存储程序代码指令,define定义的常量。2.数据区------主要存储全局变量(常量),静态变量(常量),常量字符串。3.栈区--------主要存储局部变量,栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但内存大小有限。4.堆区--------由malloc,calloc分配的内...

2018-07-24 21:07:23 8193 1

原创 七种排序--------堆排序(Heap Sort)

堆是具有下列性质的二叉树:每个结点的值都大于或等于其zuo'左右结点的值称为大顶锥;或者每个结点的值都小于或等于其左右孩子的值,称为小顶锥。堆排序就是利用堆进行排序的方法。他的基本思想是,将待排序的序列构造成一个大顶锥。此时整个序列的最大值就是堆顶的结点。将他移走(其实就是将与其堆数组的末尾元素交换,此时末尾元素的值就是最大值),然后将剩下的n - 1个序列的值chon重新构造成大顶锥,这样就...

2018-07-21 13:50:32 682

原创 七种排序--------希尔排序(Shell Sort)

希尔排序的基本思想是将距离某个增量的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后的结果是基本有序而不是局部有序。希尔排序算法代码如下:void ShellSort(SqList *L){ int i,j; int increment = L->length; do { increment = increment/3+1; //增量序列 f...

2018-07-21 10:01:45 405

原创 七种排序--------直接插入排序(Straight Insertion Sort)

直接插入的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增一的有序表。代码如下:void InsertSort(SqList *L){ int i,j,k; for(i = 2;i <= L->length;i++) { if(L->r[i] < L->r[i - 1]) //需将L->r[i]插入有序子...

2018-07-20 20:40:56 172

原创 七种排序------简单选择排序(Simple Selection Sort)

简单选择排序法就是通过 n - i 次关键字间的比较,从 n - i + 1个记录中选出关键字最小的记录,并和第 i 个记录交换。代码如下:void SelectSort(SqList *L){ int i,j,min,k; for(i = 0;i<(L->length-1);i++) { min = i; /...

2018-07-20 13:36:18 403

原创 七种排序--------冒泡排序(Bubble Sort)

冒泡排序是一种交换排序,他的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。首先做一下排序前的准备工作,看如下代码:#define MAXSIZE 10 //用于排序数组个数的最大值,typedef struct{ int r[MAXSIZE]; int length; //数组长度}SqList;void swap(SqLi...

2018-07-19 14:33:35 748

原创 腾讯笔试题--------小Q的歌单

题目描述:        小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。输入描述:    每个输入包含一个测试用例    每个测试的第一行包含一个整数,表示歌单的总长度K(1<=K<=1000).    接下来的一行包含...

2018-07-18 21:26:44 5346 2

原创 C++三种继承方式总结

1.public,protected,private标号的访问范围。public:可以被该类的函数,友元函数,子类函数访问,也可以由该类的对象访问。protected:  可以被该类的函数,友元函数,子类函数访问,但不能被该类的对象访问。private:  可以被该类的函数,友元函数访问,但不能被子类函数和该函数对象访问。2.三种继承方法继承后子类属性的变化。父类中的priva...

2018-07-18 13:36:26 6406

原创 C++三种继承方式--------保护继承(protected)

保护继承表现出来的特征在共有继承、私有继承dou'都能找到有交叉的地方。通常保护继承的子类访问父类成员的权限和公有继承的子类访问父类成员的quan权限相同,保护继承的子类对象访问父类成员的权限和私有继承子类对象访问父类成员的权限相同。具体来说,保护继承的特点是父类的所有公有成员和保护成员都成为子类的保护成员都成为子类的保护成员,并且只能被他的子类成员函数或友元访问,父类的私有成员仍然是私有的,子类...

2018-07-16 21:51:31 24351

原创 C++三种继承方式--------私有继承(private)

       私有继承与公有继承有什么区别?如果将上一篇共有继承中源代码中类B继承类A的方式改成私有继承(private),其他部分代码保持不变,编译代码,会出现一下错误信息:    从编译器指出的错误信息可以看出,父类A中的所有成员在子类对象B中都是不可见的。但是父类中的公有成员在私有继承的子类B中是可见的,可以被访问,但是其属性在子类发生降级。父类A中的public和protected...

2018-07-10 17:17:58 33291 5

原创 C++三种继承方式--------共有继承(public)

首先看一段代码(0621_3.cpp):#include <iostream>using namespace std;class A{private: int a;protect: int b;public: int c; void show() { cout << "a = " << a <...

2018-07-10 09:16:44 6254

空空如也

空空如也

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

TA关注的人

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