自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 clion+vs编译器+Qt5中使用QPrinter和QprintDialog类

学习Qt过程中,实现用一个编辑器,其中需要使用到打印文本功能,在使用Qt printer时遇到了几个麻烦。1.在使用到QPrinter和QprintDialog类时的附加处理①若是在qt creator中,需要在 (.pro)工程文件中加入 “QT+= printsupport”,否则会编译报错②若是在VS编译器环境下,只需在相应头文件中添加以下两条语句#include <QtPrintSupport/QPrintDialog>#include <QtPrintSupport/Q

2020-07-27 13:49:48 74

原创 win10下pytorch快速安装

建立好python的虚拟环境后,如果需要在虚拟环境中导入’'import torch",需要安装pytorch(第三方依赖库)但是如果按照官网的下载命令安装,由于使用的是国外的源,下载速度十分慢,并且有很大的概率下载失败于是发现一种新办法可以很快安装好pytorch(win10环境下),是B站上的一个视频教程,视频中从很基础的讲起,新手老手皆宜,下面附上链接:快速安装pytorch教程...

2020-06-16 09:56:34 164

原创 常见的错误总结

无法解析外部符号的错误此类错误非编译错误,非常令人头疼,出现时应根据以下几种情况,逐一排除即可:1.首先考虑头文件是否添加完全,正确2.头文件引用成功时,所有函数是否全部声明,声明的函数是否实现(尤其在用逐一注释的办法调试时,将头文件的原因排除掉后,没注意到将源文件里中声明函数的实现部分取消注释,也会报错,因为有的编译器要求所有生声明的函数必须实现)3.接下来就是将所有的中文注释换成中文注...

2020-04-23 21:29:05 40

原创 网络编程(I/O复用)

概述阻塞IO操作:通常IO操作(比如read和write)都是阻塞I/O的,当调用read时,如果没有数据收到,线程或者进程就会被挂起,直到收到数据。当服务器处理1000个连接,但是只有很少连接执行IO操作,那么需要1000个线程或进程来处理1000个连接,而1000个线程大部分是被挂起的。线程内存和切换开销由于CPU的核数或超线程数一般都不大,比如4,8,16,32,64,128,比...

2020-04-08 15:26:10 39

原创 网络编程(Socket编程接口二)

UDP传输传输流程图:1.单播发送者:1.打开socketconnfd = socket(AF_INET,SOCK_DGRAM,0); 2.设置发送地址和端口struct sockaddr_in si; si.sin_family = AF_INET; // 套接字地址簇,一般使用AF_INETsi.sin_port = htons(端口); // 16位端口,网络序...

2020-04-08 10:54:18 49

原创 网络编程(Socket编程接口一)

1 接口1.1 转换操作转换操作主要分为三类:字节序转换操作、IP地址转换操作和主机名转换操作。1.1.1 字节序转换操作1.1.2 IP地址转换操作IPv4地址结构:struct in_addr { in_addr_t s_addr;};IPv4地址类型:typedef unsigned int in_addr_t;套接字地址结构:struct sockad...

2020-04-03 21:31:07 161

原创 网络编程(Socket编程概念)

1.套接字1.1 什么是socket·socket是一个编程接口·socket是一种特殊的文件描述符1.2 协议域参数含义AF_INETIPv4AF_INET6IPv6AF_LOCALUnix域1.3 类型type参数含义流式套接字(SOCK_STREAM)提供了一个面向连接,可靠的数据传输服务,数据无差错,无重复的发...

2020-04-02 19:27:14 49

原创 系统编程七(线程池)

线程池实战案例

2020-04-01 16:43:57 43

原创 系统编程六(多线程同步)

1.信号量操作函数创建int sem_init(sem_t *sem, int pshared, unsigned int value)销毁int sem_destroy(sem_t *sem)阻塞等待int sem_wait(sem_t *sem)非阻塞等待int sem_trywait(sem_t * sem)触发int sem_post...

2020-03-29 12:27:32 35

原创 系统编程五(多线程编程)

1.概述线程是比进程更小的能独立运行的基本单位,线程基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如线程ID,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程包含以下内容:·指向当前被执行指令的指令指针;·栈;·寄存器值的集合,定义了一部分描述正在执行线程的处理器状态的值;·私有的数据区2.查看线程命令:命令含义...

2020-03-27 21:50:58 33

原创 系统编程四(信号量)

概述#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc,char * argv[]){ fork(); int i=0; for(;i<5;i++){ printf("PID:%d,enter\n",getpi...

2020-03-26 11:29:45 33

原创 系统编程三(共享内存)

什么是共享内存1.POSIX 共享内存查看:man shm_overviewls /dev/shm1.1分类1.内存映射文件:注意:共享内存大小 = 文件大小2.匿名内存映射(亲缘进程)风格方式BSDMAP_ANON+mmap()Systerm V/dev/zero+open()3.共享内存区对象(非亲缘进程)1.2 接口头文件:s...

2020-03-25 16:10:00 37

原创 系统编程二(管道)

1.简介查看管道命令:man 7 pipe前一个的输出作为,后一个的输入,用做进程之间的通讯工具。分类:匿名管道FIFO管道/命名管道2.匿名管道2.1 单工管道(四个操作)程序进程与Shell命令行进程单项通信。一.打开管道:FILE* popen (const char *command, const char *open_mode)参数说明:参数含义...

2020-03-22 17:40:21 44

原创 c++学习笔记十九(关于auto)

auto关键字一.概述在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量。C++11中,auto有了全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。通俗地讲,auto关键字是可以自动推导变量类型的。需要注意的是,auto不是一个类型的“声明”,而是一个“占位符”...

2020-03-20 15:34:35 51

原创 c++学习笔记十八(lambada表达式)

lambada表达式一.概述C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。语法形式:[函数对象参数/捕获] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}二.构成部分分析1.[函数对象参数/捕获]内容含义空没有任何函数对象参数。=函数体内可以使用 Lamb...

2020-03-20 14:34:40 69

原创 系统编程一(进程基础)

进程如果程序是菜谱,进程就是厨师烹饪;如果程序是乐谱,进程就是乐师演奏;如果程序是剑谱,进程就是剑客舞剑;如果程序是棋谱,进程就是棋士复盘;程序是静的,进程是动的。进程与程序区别进程程序动态静态有生命周期指令集和只能对应一个程序可以对应多个进程概念从代码到程序从程序到进程·内核将程序读入内存,为程序镜像分配内存空间。·内核为该进...

2020-03-19 21:38:53 28

原创 c++学习笔记十七(函数指针与智能指针)

1.auto_ptr作用:对作用域内的动态分配对象的自动释放基本类型:#include <iostream>#include <memory>using namespace std;int main(){ int* pn = new int(10); auto_ptr<int> ap(pn); cout << *a...

2020-03-15 17:31:46 53

原创 c++学习笔记十六(动态链接库与静态链接库--类篇)

文件内容:test.h:#pragma onceclass Test{public: Test(); ~Test(); void Func(int i);};test.cpp:#include <iostream>#include "test.h"using namespace std;Test::Test(){ cout &lt...

2020-03-15 12:08:10 88

原创 c++学习笔记十五(动态链接库与静态链接库--函数篇)

函数和数据被编译进一个二进制文件,编译器在链接过程中将从静态库中恢复这些函数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。建立三个文件;test.cpp:#include <iostream>#include "test.h"using namespace std;void Func(int i){ cout << __func__ &...

2020-03-12 21:29:07 40

原创 c++学习笔记十四(makefile文件)

也就是说,如果只执行make,就执行的是makefile文件里定义的第一条指令;具体执行哪条指令,需要在make后加上其对应的目标名。2. Makefile多文件编译编辑三个文件作为示例:string.h:#ifndef _STRING_H_#define _STRING_H_#include <iostream>using namespace std;#incl...

2020-03-11 21:33:34 46

原创 c++学习笔记十三(重载和多态原理分析)

同一个.h头文件里的声明的sum函数g++编译后,倾轧的sum函数(不可以被c调用):gcc编译后,未被倾轧sum函数(可以被c调用,但是不可以被c++调用,因为c++只会调用编译后倾轧的函数):为解决让同一个头文件编译后,既可以被c调用,也可以被c++调用,如此定义头文件array.h:#ifndef ARRAY_H#define ARRAY_H#ifndef __...

2020-03-09 13:40:23 36

原创 c++学习笔记十二(类型转换)

类型转换·隐式类型转化·显示类型转换回顾C语言中的转换//隐式转换:一般由表示范围小的类型转换为表示范围大的类型int n = 10;float f = n;n = f; //反过来转换会出现截取的情况,有的编译器会警告,有的会报错 //截取会造成数据的精度的丢失int* p = &n;void* v = p; //隐式转换p = (int*)v; //显式...

2020-03-09 01:27:50 41

原创 c++学习笔记十一(STL算法)

c++STL常用算法示例代码:#include <iostream>#include <vector>#include <list>#include <algorithm>#include <iterator>#include <numeric>#include <string>using...

2020-03-03 18:27:41 47

原创 c++学习笔记十(STL容器)

容器容器(Container)分类顺序容器(序列容器)Sequence Containervector,list,deque关联容器 Associative Containermap,set容器适配器 Container Adapterstack,queue,priority_queue一.顺序容器(序列容器)Sequence Containerv...

2020-03-03 18:24:47 52

原创 c++学习笔记九(STL概述)

vector容器vector的四种迭代器:迭代器作用iterator可修改迭代器 begin() end()reverse_iterator逆序可修改迭代器 rbegin() rend()const_iterator不可修改迭代器 cbegin() cend()const_reverse_iterator逆序不可修改迭代器 crbegin()...

2020-02-27 21:32:26 66

原创 c++学习笔记八(模板)

#include <iostream>#include <string>using namespace std;template <typename T>T Max(T a,T b){ return a>b?a:b;}int main(){ //指定类型 cout << Max<int>(10,1...

2020-02-26 17:30:43 60

原创 c++学习笔记七(异常)

注意:虽然异常后的代码不会执行,但是处理(catch)后的程序会继续执行示例:#include <iostream>using namespace std;int divide(int a,int b){ if(0==b) throw string("Error:除数不能为0!"); //抛出异常 return a/b;}int main(){...

2020-02-24 17:36:39 32

原创 c++学习笔记六(文件)

格式控制成员函数:#include <iostream>#include <iomanip>using namespace std;int main() { int n = 10; float f = 0.1; string s = "hello"; cout.width(10); cout.fill('*')...

2020-02-23 17:35:42 35

原创 c++学习笔记五(多态)

#include <iostream>using namespace std;class Father{public: virtual void Func(){ cout << "Father::Func()" << endl; }};class Son:public Father{ //覆...

2020-02-21 17:34:38 28

原创 c++学习笔记四(继承)

子类继承父类的默认方式是private继承另外:在C++中结构体也是可以互相继承的,它们之间的继承关系默认是public的示例:#include <iostream>#include <cmath>using namespace std;class Triangle{//private: //父类的私有成员子类函数不能访问,但是父类函数和友元函数...

2020-02-20 19:50:34 48

原创 c++学习笔记三(再谈类和对象)

赋值运算符拷贝函数示例:#include <iostream>using namespace std;class Test{public: Test():n(0),m(0){} Test(int n,int m):n(n),m(m){} Test& operator=(const Test& t){ //赋值运算符重载,覆盖掉...

2020-02-16 18:20:06 70

原创 c++中的Vector和String

实际应用:#include <iostream>#include <vector>using namespace std;int main(){ //定义一个一般的数组做对比 int a[] = {1,2,3,4,5,6,7}; for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){ c...

2020-02-13 11:42:18 276

原创 c++学习笔记二(类和对象)

注意:成员变量一般是私有的,只能通过成员函数访问;成员函数一般是公有的,可以提供给对象对外调用。Vector和string实际应用:#include <iostream>#include <vector>using namespace std;int main(){ //定义一个一般的数组做对比 int a[] = {1,2,3,4,...

2020-02-12 17:34:09 36

原创 c++学习笔记一(从c过渡到c++)

c++和c的几个简单的区别例子:调用同一个函数时,会自动匹配合适的参数执行如果出现以下情况,编译器就会报错,认为重复定义:但是有些时候就是需要定义重名的参数,所以避免混乱,就可以应用命名空间:将同名的函数拉入到新的命名空间中,根据命名空间来区分它,就不会出现重复定义的问题注意:命名空间可以间隔着重复添加函数或者变量等等c++和c动态内存分配的区别:关...

2020-02-12 11:00:31 39

原创 win10安装python虚拟环境以及在pycharm中应用虚拟环境

什么是python虚拟环境它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。为什么要使用虚拟环境在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy、Beautiful Soup等,但是...

2019-12-09 19:55:24 252

原创 Linux学习笔记十九(系统排错)

实验一:忘记了用户的登录密码怎么办?修改passwd文件中root用户的密码(模拟忘记密码):重启后无法登录:修复过程按下开机键后,快速按动上下键进入如下界面:将其中可编辑信息删除到如下:输入rw rd.break后ctrl+x:将新修改的密码写入文件中(redhat):创建修复文件:连续输入两次ctrl+D重启即可。实验二:grub系统引导第一阶段(grub磁...

2019-11-22 23:05:42 26

原创 Linux学习笔记十六(LVM逻辑盘卷管理)

关于LVM的介绍LVM的建立监视命令:监视信息(pvs,vgs,lvs,/data):接着建立一个物理分区:显示建立结果:将他转换为lvm(代码8e):wq保存退出,查看建立结果:pvcreate /dev/vdb1 //建立一个物理卷vgcreate vg0 /dev/vdb1 //创建一个名字为vg0的物理组lvcreate -L 10...

2019-11-13 18:01:55 71

原创 Linux学习笔记十八(SeLinux)

如何更改文件安全上下文安装httpd服务:进入/var/www/html/中,将hostname写入到hello.html文件中:再将时间写入/mnt/daguaniu.html文件中:再将该文件移动到共享目录下:设置sentenfrce 0 两个文件都可以访问:设置为1以后,daguaniu.html文件无法访问:列出内核安全上下文内容:临时修改安全上下文:查看...

2019-11-12 20:43:07 34

原创 Linux学习笔记十七(FTP的安全优化)

FTP的安装及启用首先需要配置好yum仓库源,然后用yum安装两个包:vstpd.x86_64:提供FTP服务lftp.x86_64:为了浏览FTP的工具开启服务:设置防火墙,首先打开防火墙的设置图形界面:点Permanent,然后勾选FTP:Options里选择Reload Firewalld:查看生效:查看软件在系统中的安装文件路径:服务主配置目录:服务主...

2019-11-12 20:34:10 50

原创 Linux学习笔记十五(磁盘管理)

设备名称识别及设备查看命令fdisk -l //查看系统中真实存在的设备cat /proc/partition //系统识别的设备blkid //系统可使用的设备关于设备的名称:解析/dev/sda1的含义dev:代表的是devicesda1:s代表sata(硬盘的一种接口,见下图,对应的有pata);d代表disk;a代表系统中的第一个硬盘(b就...

2019-11-08 20:06:54 71

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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