自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 qt样式表笔记

一。语法qt样式表(qss)的基本语法和css基本一样,熟悉css的使用的话其他样式表也差不多都会了。1.qt样式表主要有选择器和声明2部分组成,基本语法如下:使用时可直接调用类的成员函数setStyleSheep("......"),这时不需要指定选择器直接写声明,本身这个类就是选择器了;也可以使用main函数里的app.setStyleSheep()直接设置全局样式,这时就需要指定选择器了;不需要选择器的写法需要选择器的写法2.一次指定多个选择器:当多个选择器..

2021-02-01 14:17:53 400 1

原创 设计模式理解与总结

设计模式描述的是类与相互通讯的对象之间的关系,包括角色,责任等。设计原则:1.依赖倒置(DIP)高程模块不应该依赖于低层,二者都应该依赖u于抽象。抽象不应该依赖于细节,实现细节应该依赖于抽象。(简单来说,使用抽象为中间项,调用 ----》抽象---》实现。实现细节继承于抽象,抽象改变,实现跟着改变,而不是实现细节拉着抽象改变)2.开发封闭原则:对扩展开发,对更改封闭。类模块应该扩...

2020-05-21 11:35:35 301

原创 windows上配置jenkins+gtest

记录在windows上配置jenkins+gtest完成c++的集成单元测试配置gtest。

2020-04-24 18:00:09 1885

原创 github使用笔记

一.搭建使用环境1.下载git.exe一路下一步知道安装完成,这是鼠标右键菜单会有 git bash here选项 。2.在本机上第一次运行时需要绑定ssh密钥,可以直接打开你github的账号,在设置里设置ssh里添加ssh key,标题随便写,key复制生成的ssh公钥内容(cmd输入ssh-keygen,一般在用户文件夹下有.ssh文件,id_rsa_pub文件就是公钥)...

2020-04-23 19:18:24 285 1

原创 suse12 配置vnc的经历

近些天公司有业务需要在suse12上配置vnc远程控制,于是我就风风火火的去查询怎么配置vnc服务,先是在百度上搜索,不过基本上找不到suse12的,倒是找到了不知道版本的suse的配置,suse12再网上的资料很少,...

2020-04-09 11:27:46 1312 1

原创 PC机上的安装suse12 linux及网络配置问题(网卡不显示ip)

fdisk -l ==查找盘符mount 盘符目录 指定目录 === 挂载--------------------------------------------------------------------------------------------------ctrl + alt f1 -f2 .3.4.5 -f6 == 进入命令行(桌面死掉...

2020-04-07 10:24:02 4005

原创 vscode配置c++环境及sftp,Linux ssh连接

下载工具:1.vscode2.MobaXterm MobaXterm下载连接下载好vscode后去商店(ctrl+shift+p)下载中文翻译,C/C++ IntelliSense下好安装就行了下载编译器,这里我下载的时mingw64下面是下载连接:mingw64下载配置mingw64的环境变量,例如:D:\install\cueu\min...

2020-01-16 20:41:54 1278

原创 c++模板笔记

目录模板编译机制:模板分为函数模板和类模板:类模板:函数模板:非类型参数:默认模板参数:成员模板:实例化控制:类型转换:函数显示模板实参:尾置转换参数:可变长度参数:扩展包:特例化模板:模板编译机制:编译器遇到一个模板时不会产生参数,不会产生模板,直到运行期给模板参数,这时编译器就会产生相应的函数代码,这称之为实例化。只有模板实例化出...

2019-11-22 11:56:48 183

原创 c++运算符重载

运算符重载本质上就是函数,可以看做是一个具有特殊名字的函数,所以他和其他函数一样,有返回值,参数,函数体。如下:是一个运算符重载。operator是关键字。重载运算符几个要注意的特点运算符重载的方式有3种:(1)作为类的成员函数的运算符重载(2)作为非成员函数运算符重载 1)作为类的友元函数运算符重载 2)普通的函数的运算符重载...

2019-11-05 14:50:54 118

原创 数组,指针,字符串

二维数组与二级指针,二维数组可以表示为知道二级指针中一维的长度。int (*a)[] 与 int** a; 注意,返回值为一个二级指针的函数不能赋值给二维数组。int a[][] = int**fun() X; int a[][] = int (*fun())[] V;fun是函数名;指针的值永远是地址。*p永远是该地址上的内容,但是有时候却有点误解。char*p = “asddfgh...

2019-10-24 12:54:49 132

原创 linux的简单使用介绍

目录1.打开终端2.关机:3.常用终端命令:1.文件操作命令跳转:查看删除创建 /修改复制剪切(重命名)查找 2.系统显示命令:3.时间日期显示命令:4.命令别名与历史命令:5.系统操作命令:6.其他常用命令:7.联机帮助命令:linux常用命令4.快捷键 5.安装软件:6....

2019-10-24 12:53:18 714 1

原创 c#学习

目录控制台的输出输入类型:可空类型:数组:多维数组:交错数组:(可以认为是不定列长度的二维数组)参数数组:(感觉功能上有点类似可变参数)array类:字符串C# 结构的特点类 vs 结构类类内的静态成员继承多态运算符重载接口异常处理文件读写简单的文件操作:FileStream类文本文件的数据读写StreamRe...

2019-10-14 23:56:06 455

原创 关于c/c++定义声明全局变量的问题

简单的说你只要在头文件上定义全局变量几乎就全是错的,除非你能保证这个头文件只会包含一次(#ifndel只能保证一个文件里不会重复包含,但是在多个文件里就会都进得去,使得在链接阶段会出现重定义。),c++与C语言的差别,C语言inta ; int a ;能通过,(没有赋值时他认为是声明)。c++是通不过的他会认为是重定义。正确的全局变量定义是// .h#ifndelX...

2019-09-09 16:24:00 241

原创 条件编译防止头文件重复包含

#ifndef _XX_XX_H#define _XX_XX_H……#endif#ifndef // 当且仅当变量未定义为时为真#ifdif // 当且仅当变量已义时为真#endif // 结束指令第一次遇到包含head.h时 #ifndef的检查结果为真,预处理器将顺序执行后面的操作直到遇到#endif,此后 HEAD_H已定义,再次遇到时则为假。这种结构,它是为了防止重复包...

2019-09-09 11:44:47 1226

原创 .h文件,.c文件,.lib文件和dll的区别

大家都知道,.h文件是头文件,用来声明变量,函数的,而对应(其实你也不一定要对应,头文件写对就行,主要方便整理)的.c文件是函数,变量的定义。简单易懂的关系。那其他2个呢。.lib文件是二进制文件,是一个或者数个.c文件的集合,也就是说他有.c文件的作用:定义。那么,.c文件就有的功能为什么还要弄成.lib文件呢,使用还麻烦,要#pragmacomment(lib,"xxLib.lib");...

2019-09-06 18:46:04 2476 1

原创 c/c++位运算及其应用

位运算就是把其他进制的整数,换算成二进制再进行运算。主要有 &, |, , ^ , ~, <<, >> 。注意,位运算的优先度高于逻辑运算的&&,||,!的。如何求其进制的二进制我在上一篇已经总结过了,这里就不在重复了,具体就是用余数定理分解。链接地址:https://blog.csdn.net/qq_40140790/article...

2019-09-02 15:06:16 313

原创 C/C++运算符优先顺序

经常不记得运算符优选顺序,在这里记一下不记得了好回来翻看节省时间

2019-09-02 11:51:39 3366

原创 堆,栈等概念以及内存泄露,内存溢出,内存越界等问题

内存4区:在进程中内存被分为4个区域,分别是堆,栈,常量区,代码区。堆是我们程序员能够直接控制的内存区域(既是new malloc),栈是程序自己控制的区域,常量区是存放全局变量,字符串常量的区域以及存放代码的代码区。在这之中堆栈是我们要注视的重点。下面我们通过一个程序了解堆栈的生长方向以及数据的生长方向。int main(int argc, char* argv[]){ /...

2019-09-01 12:36:43 1137

原创 extren与.h头文件

#include <iostream>/*在test.cpp文件钟定义#include<stdio.h>int x = 12345;int test(){ printf("hello!!!\n"); return 0;}*/int test(); //当没有包含头文件时使用声明就可以用了,函数的定义和声明是不一样的,所以extern可以省略。...

2019-08-29 15:30:21 394

原创 2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换的方法

通常我们写代码时总会遇到一些16进制,2进制的数据,虽然不会叫你手动转换,但至少要知道这个大概是个什么,所以了解一些转换规则还是有必要的,主要有余数定理分解(用于10进制转成其他进制),横式直接计算(用于其他进制转成10进制),二进制的8421(用于2进制与16进制的转换)。1.我们最大量的需求通常是看懂16进制的10进制表示,可以采用横式直接计算。 这种转换当...

2019-08-26 18:28:03 563

原创 谷歌命名规范总结

总有一种感觉,自己写的代码和别人写的代码总是不同,感觉自己写的代码非常的丑陋,别人的非常的优美。有些自己写的代码几个月后自己都看不懂的情况出现 = = 。所以写代码不能任凭发挥龙飞凤舞,他们也要有自己的规范,才能统一,优美。下面是网上找到的谷歌代码的一些总结,仅供参考。作用域的规范1. .cc中的不具名命名空间可避免命名冲突、限定作用域,避免直接使用using提示符污...

2019-08-19 16:41:06 2409

原创 #if 与if #ifdef的区别以及宏的几种用法

先来说一下宏的几个作用 宏的几种用法#if与if的区别:1、属性作用不同#if是条件编译,条件编译是根据 宏条件 选择性地编译语句;而if是条件语句,条件语句是根据条件表达式选择性地执行语句。2、执行时期不同(重点)#if是编译器在编译代码时完成的,if是在程序运行时进行的在程序运行时执行。3、使用不同#if后面不能写变量,if后面可以写变量。#if与#if...

2019-08-16 11:39:54 7502

原创 回调函数

了解回调函数之前我们先来了解函数指针,函数的入口和变量一样,也是写进内存的,使用时会被压进栈,这说明可以和对变量一样,用一个指针指向函数,这种指针称之为函数指针。函数指针:例如:void (*fp)(char *s)。使用typedef 转换typedef void (*Func)(int);写法是 返回类型(*新类型)(参数表),define进行替换时也是这种写法。由上可知,...

2019-08-15 15:59:00 93

原创 多线程编程(二) ----- std::thread

c++11封装了有关多线程编程的类库,使用他们会使多线程编程更为轻松简单,这里就总结一下std::thread的简单实用。使用std::thread之前我们先来了解有关的函数头和其相关的成员方法相关的头文件有<thread> <future> <mutex> <condition_variable> <atomic> <co...

2019-08-15 14:21:53 1256

原创 数据结构-----图

https://blog.csdn.net/daijin888888/article/details/73177325

2019-05-24 21:00:52 79

原创 数据结构-----树

目录1.树的术语2.2叉树/树的创建3.2叉树的遍历4.2叉树的构造5.哈夫曼树6.bst树7.avl树8.红黑树与avl树1.树的术语Root根顶端结点 The top node in a tree. Child子节点一个结点所连接的结点 A node directly connected to another node when ...

2019-05-20 17:29:26 198

原创 数据结构-----单链表,栈与队

总结单链表,链栈和环形队列的创建和使用1.单链表:typedef struct list{ int m; struct list *next; //struct list *rihgt} mylist;class List{ public: List() : plist(new mylist) { if (plist == nullptr) { ...

2019-05-20 15:27:19 166

原创 数据结构------内部排序法

总结一些算法的实现:交换排序*****1.冒泡算法typedef struct arr1{ int data; int key; //关键字项必须能比较大小}arr1;void BubbleSort(arr1 goal[], int n){ int i; int j; arr1 tmp; bool flag; for (i = 0; i < n - ...

2019-05-20 14:23:41 75

原创 windows网络编程------,重叠io,完成端口

在了解完成端口之前,我们先要了解重叠io(完成端口是基于重叠io上实现的)重叠io,即执行I/O请求的时间与线程执行其他任务的时间是重叠(overlapped)的。我们正常的的socket是socket到达后,系统通知我们socket到了,然后我们用recv把socket缓存里面的信息复制到内存上来,这个io的步骤就花了可观的时间,但cpu的占用却很少,就不能想个办法在我们读写的时候还能做其他...

2019-05-05 01:04:33 1087 2

原创 windows网络编程------select模型

select模型与一般模型的区别是selete模型使用fd_set数据类型和select函数在内核里维护一张存有连接上的socket表,使用select轮循处理这些socket,实现同时与多个socket连接。基本工作原理:创建socket,绑定,监听,开个死循环,当发现有socket请求连接后把该socket写入全局变量的fd_set数据类型中,给另一个线程处理,总监听数-1,处理线程会接受...

2019-05-04 01:47:51 694

原创 windows网络编程------tcp/udp

tcp主要api函数:WSAStartup(MAKEWORD(2, 2), &wsd) 初始化socketsocket(AF_INET, SOCK_STREAM, IPPROTO_TCP) ...

2019-05-03 21:08:53 302

原创 多线程编程 ----- 四种同步方法

多线程,就是在一个进程里除主线程外创建其他的线程为进程工作,为什么要使用多线程?因为使用多线程在多数情况下都能提升运行速度。多线程主要的应用场景有避免阻塞(异步调用)比如你用一般模型的socket通讯,没收到信息前都会堵塞等待,这是你创建多线程等待自己去做其他的。避免CPU空转以http server为例,如果只用单线程响应HTTP请求,即处理完一条请求,再处理下一条请求的话,...

2019-05-02 14:27:06 1383

原创 进程间通讯 ----- 共享内存

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,一般会用信号量同步。主要函数:CreateFileMapping()创建一个文件映射 LPVOID M...

2019-04-30 18:45:17 217

原创 进程间通讯 ----- 命名管道

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。每个进程都有一个主线程,线程则是cpu调度的基本单位,每个进程都有自己的地址空间,所以进程想要分享自己的资源时需要通讯。进程间的通讯有管道,socket,消息队列,信号,共享内存等。下面我们来了解命名管道。管道的实质是一个内核缓冲区,进程以先进先出的方式...

2019-04-30 16:56:11 198

原创 一个程序的出生与死亡

目录1.预编译2.编译3.汇编4.生成目标文件5.链接6.生成可执行文件7.装载8.运行9.死亡编译又分为预处理(Preprocessing),编译(Compilation)和汇编(Assembly).1.预编译预编译过程主要处理源代码文件那些#开头的预编译指令 1 2 3 4 5 6...

2019-04-30 15:45:31 322

github安装包.rar

git。

2020-04-23

LINUX的网卡驱动.rar

linux网卡驱动 RTL8168/8125/8101

2020-03-31

MobaXterm_Portable_v12.4.rar

MobaXterm的可执行文件,不需要安装,下载运行即可 .

2020-01-17

mingw64.rar

minw64,c和c++的编译调试工具 。

2020-01-17

google C++ 编程规范 .rar

google C++ 编程规范

2019-08-19

空空如也

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

TA关注的人

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