- 博客(64)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++-内存管理
参考博客:https://blog.csdn.net/jing0611/article/details/4030237在最开始的学习中,老师一直在说一个关于C++的话题。**C++是一个极度追求性能的语言。**通过学习,这不是开玩笑,在我所学习的语言中,对内存的使用有如此的执着的“较真”也就是C++了。因为性能的缘故,一个内存不合理的分配,都可能在日后成为一个隐患,成为一个令人头疼的BUG。所...
2019-06-18 11:05:24
10412
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 TCP的三次握手与四次挥手(生动详细图片解释可保存)
TCP的三次握手与四次挥手关于题目的这个问题,在网络中有着非常重要的地位。因为客户端与服务端之间通过TCP协议,为了进行数据的传输会进行一系列的操作,这中间的操作就是TCP的三次握手与四次挥手。重新回顾TCP协议TCP协议称为数据传输协议,是可靠传输,面向连接的,并且面向字节流的。面向连接:通信之前先建立连接,确保双方在线。可靠传输:在网络正常的情况下,数据不会丢失。面向字节流:传输灵...
2019-06-13 21:41:39
311
原创 Qt5学习 模仿qq音乐播放器样式(2)——点击动画效果+歌词颜色变换展示
拖的太久,主要再上一篇文章中,新学习了相关知识,做了右键菜单,点击按钮动画切换窗口和播放时歌词颜色显示当前播放位置。主要为了实现功能的展示,所以很多文件读取都直接采用了本地文件这种比较low的方式。对软件来说使用会很差,不过毕竟以实现为主,所以不再此考虑太多花里胡哨了。点击动画效果先上图对比下与qq音乐的样式猛的一看好像就是点击按钮出现了一个新的窗口。其实这个动画效果唯一的特点就是,这个窗口是慢慢从底部滑动到顶部,滑动的时间是可以自己设置的。动画效果设计思路1、在主窗口内底部添加一个子窗口,
2021-04-06 22:07:17
1586
原创 Qt5学习 模仿qq音乐播放器样式(1)
尝试用 Qt做一些小例子才能更好的学习与使用。看了下网上对于qq音乐的样式没有相关文章,所以慢慢模仿做一个。对于桌面应用,Qt当前更多用于工程项目的控制窗口设计。掌握基本信号与槽,函数使用和简单样式设计即可。其他就是工作业务流程,根据相关工作有不同的用法。当然我们熟知的WPS可是用Qt实现的。说在前面,关于Qt本人是无比无奈,在Qt5的功能下,很多功能的实现比之前版本相对容易了许多,但是功能的增加必定带来许多坑。而且一个控件所使用的相关函数,信号与槽有些关于介绍或者参数是相当模糊的,需要有一个试错过程。
2021-01-04 22:59:28
1852
2
原创 Qt之seturl和load
很久没有写博客了,成为了一名社畜。因为工作需要,所以要对Qt进行学习,有机会就对Qt相关的知识点进行记录学习。网上的资料还是比较杂,官网的文档多为说明,但是实例较少,许多函数之间的用法也比较接近。记录也是为了让自己加深印象。QWebEngineView如果你想将web页面嵌入到Qt的窗口页面展示,一般使用QWebEngine相关类。QWebEngine是基于谷歌浏览器内核引擎。对于加载和显示网页非常的简单与便捷。在官方文档查阅资料过程中,有两个函数seturl和load可以将网页的url调用,这
2020-09-20 18:35:48
2778
2
原创 C++-多态
多态多态的概念通俗的来讲,就是多种形态。具体点就是去完成某个行为,当不同的对象去完成时会产生不同的状态。比如:买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优先买票。多态的定义及实现多态的构成条件多态是在不同继承关系的类对象,去调用同一个函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。...
2019-07-29 15:49:36
270
原创 网络基础知识-传输层
传输层负责端与端之间的数据传输。也就是说进程与进程之间的数据传输,进程用端口来表示,所以也可以叫做端口和端口之间的传输。端口号端口号为065535,一般01023为知名端口,不推荐使用,在一台主机上表示一个进程。操作系统拿到网卡接收的数据之后,通过数据中的端口号知道数据放到哪一个socket缓冲区中五元组一条数据中包含的五个信息。源IP+源端口+目的IP+目的端口+协议主机上网络状态...
2019-07-06 16:53:48
470
原创 C++-继承
C++继承继承的概念及定义继承的概念继承机制是面向对象程序设计使代码可以复用的常用手段,它允许程序员保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用是函数复用,继承是类设计层次的复用。最普通的继承例子class Person{public: void Print() {...
2019-07-03 10:33:21
185
原创 网络基础知识-应用层
在了解网络整体模型之前学习了套接字编程和一些简单的网络知识。但是网络编程的理论基础是建立在多方面上的,比如数据在每一层是经过了怎么样的封装,每一层使用了哪些协议,每一层的协议又有哪些用途。只有掌握好这些基础知识,才能更好的成为一个服务器开发人员。应用层程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在应用层完成的。那么应用层使用了哪些协议呢?自定制协议socket编程中...
2019-06-18 16:10:51
456
原创 Linux网络套接字编程(2)-TCP传输+多线程+多进程
TCP传输TCP的三次握手图解为TCP协议的传输过程。客户端操作服务端操作1、创建套接字1、创建套接字2、向服务端发起连接2、绑定地址信息3、发送数据3、监听(若有新的客户端,新建socket)4、接收数据4、接收已经连接成功的socket5、关闭套接字TCP传输-socket编程通过C++实现一个类来封装tcp协议//tcp...
2019-06-11 18:00:38
724
原创 Linux网络编程套接字-UDP传输
网络编程套接字udp传输客户端1、创建套接字 socket()2、为套接字绑定地址 bind()3、发送数据(如果socket还没有绑定地址,这时候操作系统会选择一个合适的地址端口进行绑定)4、接收数据5、关闭套接字服务端1、创建套接字,通过创建套接字使进程与网卡建立联系,创建struct socket{…}2、为套接字绑定地址信息3、接收数据4、发送数据5、关闭套接字...
2019-06-06 15:32:43
743
2
原创 Linux网络编程
网络编程了解网络名词IP地址:在网络中唯一标识的一台主机port端口:在一台主机上标识一个进程协议:通信双方的约定网络协议:网络通信环境中数据的约定格式通信协议标准:网络互联的前提协议分层在以往的了解知道协议具有多层,而分层就是为了协议分装,为了更好的使用。对服务,接口,协议进行明确的划分;形成标准实现起来就容易了OSI七层模型物理层,数据链路层,网络层,传输层,会话层,表示...
2019-06-04 18:07:14
237
原创 C++-模板初了解
模板初阶泛型编程在C语言的学习过程中,经常会出现这么一个场景,我们需要交换两个数,但是我们每次又在另一个场景中,所以需要立即重写一个swap()函数,这就浪费了大量的时间。在C++的最开始我们学习了函数的重载,这解决了一些燃眉之急,但是当我们的类型多了,我们还是要不停的修改或者添加这么一类函数,时间还是被浪费了许多。这时候,新的知识就出来帮我们解决问题来了—-泛型编程泛型编程:编写与类型无...
2019-06-04 14:42:59
132
原创 C++-类与对象(3)
类与对象(3)再学构造函数构造函数体赋值先构造一个带有全缺省的日期类class Date{ public: Date(int year,int month,int day) { _year = year; _month = month; _day = day; } private: int _year...
2019-06-02 22:18:32
174
原创 Linux多线程(3)
线程安全的考虑关乎互斥锁和条件变量消费者与生产者模型当我们去超市买东西时,我们都认为我们是消费者,那些生产商品的都被认为是生产者。那么超市就被当作交易市场。这对比的我们的软件开发过程中:代码的某个模块负责生产数据,但是生产出来的数据不得不交给另一模块来对其进行处理,在这之间我们必须要有一个类似上述超市的东西来存储数据,这就抽象成了生产者与消费者模型其中,产生数据的模块,就形象地称为生产者。...
2019-05-31 15:23:35
473
原创 C++-类与对象(2)
类与对象(第二部分)类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类并不是什么都没有,任何类在我们不写的情况下,都会自动生成6个默认成员函数构造函数构造函数的概念构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的声明周期内只调用一次。构造函数的特性构造函数是特殊的成员函数,需要注意的是,...
2019-05-18 23:40:42
184
原创 Linux多线程(2)
线程的知识点太多,太重要,所以分成三部分进行总结学习线程安全多个线程并发同一段代码时,不会出现不同的结果。常见对全局变量或者静态变量进行操作,并且没有锁保护的情况下,会出现该问题。多个线程对临界资源进行竞争操作时若不会造成数据二义性时则线程安全;否则,此时就是不安全的如何实现线程安全常见的线程安全的情况每个线程对全局变量或者静态变量只有读取的权限,而没有写入的权限,一般来说这些线程是...
2019-05-17 18:26:52
8651
5
原创 Linux多线程
多线程越深入的学习之后,经常能听到这么一个词----多线程。之前的学习经常会提到多进程,父进程在忙不过来的情况下,会创建子进程进行帮忙,这样就是一个多进程的任务。那么什么是多线程呢?线程概念在传统的操作系统中,进程就是一个运行中程序的描述信息----pcb,控制程序的运行。在Linux操作系统下,pcb是进程,因为Linux下线程是以进程pcb模拟实现线程;也有人称为轻量级进程。但是Lin...
2019-05-15 17:04:42
583
2
原创 C++-类与对象
类与对象(第一部分)类与对象的初步认识很多语言都有这方面的区分,比如C语言是面向过程的语言,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。但是C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。类的引入在C语言中,结构体的使用只能定义变量,但是在C++中不一样,不仅可以定义变量还可以定义函数但在C++结构体的定义中,更喜欢用classl...
2019-05-14 11:14:11
251
原创 C++入门
终于进入了C++的学习。正所谓学好C++,走遍全天下。C++可以说为我打开了新世界。不过数据结构的知识还是得不断地复习啊C++关键字关键字在C语言中就已经见过了许多比如最常见的if-else,for,int,double等等。只不过在C++中还会遇到更多的,以后会慢慢学习命名空间C++引入命名空间这个概念是因为在我们编程中可能写到大量的函数,比如我在某个头文件中写了abc()这样一个函数,...
2019-05-07 22:13:15
418
原创 Linux进程信号
信号信号概念通知进程发生了某件事情导致了软件中断----会打断当前的阻塞操作,去处理事情信号的种类信号有不同的种类,每个信号都对应了不同的事件通过命令行kill -l可以查看信号的种类在图中可以看到这些都是信号的种类,总共有62个种信号1-31---->每个都有各自对应的事件 非可靠信号/非实时信号34-64---->后续添加的信号 可靠信号/非可靠信号信号...
2019-05-01 11:18:44
202
原创 Linux进程间通信
进程间通信一般简称为IPC----InterProcess Communication。是指在不同进程之间传播或交换信息。进程间通信有这么几个方式:管道(命名管道/匿名管道),共享队列,消息队列,信号量进程间为什么要通信呢?因为进程的独立性,因此想要通信必须能够共同访问一个相同的媒介。进程间通信的目的:数据传输,数据共享,进程间的访问控制。也正因为通信的目的不同,使用场景不同,因此操作...
2019-04-22 15:00:12
276
原创 数据结构之二叉树
树的概念树是一种非线性的结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把他叫做树是因为它看起来像一个倒挂的树,它的根是朝上的,但是它的叶是朝下的。它具有以下特点:每个节点有零个或多个子结点;没有父结点的称为根节点;每一个非根节点有且只有一个父结点;除了根节点外,每个子节点可以分为多个不相交的子树。关于树,还有一些相关知识,我们需要了解。节点的度:一个节点含有的子树的个...
2019-04-20 16:30:54
155
原创 Linux-基础IO+minishell重定向
文件的输入输出在c语言之前了解过。比如标准库的IO接口回顾C语言的库函数fopen,fread,fwrite,fseek,fclose这几个函数。关键在于参数的使用。例如fopen,FILE *fopen(const char *path, const char *mode),在不同的模式下打开文件所能作的操作也不同。文件使用方式含义如果指定文件不存在r–只读为了输...
2019-04-16 15:13:07
274
原创 Linux进程控制+minishell
在之前的Linux进程概念中提到了一些关于进程的创建。进程的创建通过fork函数创建子进程。进程终止进程终止顾名思义,进程结束。但是结束有各种可能,可能成功,可能失败,也可能异常。进程常见退出方法正常退出1、从main返回2、调用exit3、_exit异常退出ctrl + cexit函数#include <unistd.h> void _exit(int st...
2019-04-12 01:10:36
258
原创 Linux进程概念
进程是什么?在操作系统中,我们经常能听到这样的话。我们要终止一个进程或者杀死一个进程,父进程创建了子进程这一类的话。往往我们听到都会觉得很高大上,这跟编程语言完全不同的感觉,操作了整个计算机。进程的概念冯诺依曼体系结构在进程之前首先要提一下我们的“祖师爷”——冯诺依曼体系结构。这个是一个计算机入门第一节课必然会提到的知识。冯诺依曼体系结构提出了计算机采用二进制;计算机应该按照程序顺序执行...
2019-04-09 14:38:35
10330
5
原创 数据结构之链表练习题
这些练习都是力扣中的真题,挺容易对链表有个更进一步了解的1、删除链表中等于给定值 val 的所有节点void SListRemoveAll(SList *s, SLDataType v){ if (s->first == NULL){ return; } if(s->first->value == v){ Node *n...
2019-03-31 23:11:50
1106
3
原创 Linux的文件权限
Linux的权限Linux下有两种用户,普通用户和超级用户。超级用户就是我们所说的root,普通用户是我们自己所创建的一个用户,能在有限的权限内进行操作。Linux权限的管理文件访问者的管理文件访问者的管理分为:文件和文件目录的所有者u—user、文件和文件目录的所有者的组的用户g—group、其他用户o—others.文件类型和访问权限上图是我在我的云服务器上输入ll指令出来的当...
2019-03-30 18:43:05
642
原创 数据结构之链表
链表的定义链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。 (百度)链表:一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称存...
2019-03-26 22:30:27
192
3
原创 Django建立一个音乐网站(五)
接下来就是后台管理了。在这本书这个项目之前,我最初接触python看的是《python基础教程—从实践到入门》,这本后面讲解了django,而且这里面讲解是从admin开始。如果有兴趣了解的可以看看书或者从网上寻找资料,但是django版本不是很高,看起来可能让人容易懵后台管理是管理员对用户数据进行管理的存在。在这之中也可以对用户进行权限的赋予(知道为啥VIP牛X了吧)。登陆后台管理操作p...
2019-03-25 23:40:32
2357
2
原创 Django建立一个音乐网站(四)
之前将网站一些该有的元素都准备完成了。接下来就是关于用户注册和后台admin设置。user模块关于一个网站的浏览量是靠用户的数量来决定的。所以每一个用户在网站的操作,要做出限制。这个是可以实现的。接着还有一些个人的账号和数据信息可以完善,让管理员能更好的管理。#user的urls模块from django.urls import pathfrom . import viewsurl...
2019-03-25 14:20:22
2383
9
原创 Django建立一个音乐网站(三)
Django+mysql连接成功之后,就是我们对网页设计了。但我并不擅长html的一些前端,不做多的描述…因此将这些html文件和静态文件,打包提供大家参考。点击下载 这个是数据文件,静态文件,html文件,可以将其导入进行测试csdn不能下载,所以麻烦到我的hexo博客中下载我的hexo博客主要了解对app中各模块的写法index模块之前将index的models.py为了建立数据...
2019-03-15 16:48:48
4247
11
原创 Django建立一个音乐网站(二)
初步模板建立完成之后,就是数据的保存。数据也算是当前互联网中最热门的话题。数据库的配置是西纳泽项目所使用的数据库的类型,不同的数据库需要设置不同的数据库引擎,Django提供4种数据库引擎。分别是:'django.db.backends.mysql''django.db.backends.postgresql''django.db.backends.sqlite3''django.db....
2019-03-12 12:11:35
3615
12
原创 Django建立一个音乐网站(一)
Django是python学习的一个分支。最近跟着书上在学习。关于书上的项目我觉得拿来练手非常合适。而且涉及了数据库,html相关知识,对程序员的学习关联性我觉得还是有很大的提升的。根据《玩转Django2.0》在此理解记忆关于python在Django中的使用。Django的安装因为Django也到了2.0的时代,而且2.0之前的版本与现在有了一些很大变化,所以根据书上进行,使用2.0进行...
2019-03-12 10:38:44
7256
15
原创 利用结构体实现一个通讯录
实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址提供方法1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系人信息 5.显示所有联系人信息 6.清空所有联系人 7.以名字排序所有联系人 8. 保存联系人到文件 9. 加载联系人#include <stdio.h>#inclu...
2019-02-24 13:02:08
619
原创 进阶C-结构体,枚举,联合
结构体也是一个很重要的东西。在数据结构中,这个是经常被拿来使用的一部分。联合类型应该和结构体去比较着学习。结构体结构体的定义结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同的类型结构的声明struct Stu{ char name[20]; int age; char sex; char id[20];}Stu;特殊的声明//匿...
2019-02-22 00:31:47
165
原创 模拟实现strncpy,strncat,strncmp
main()函数中的例子全部取于cplusplus网站模拟实现strncatchar* Strncat(char* dest,const char* src,size_t num){ assert(dest != NULL); assert(src != NULL); unsigned int i = 0; for(i = 0;i < nu...
2019-02-21 21:14:08
100
原创 C语言标准库函数的理解与重写
1.实现strcpy 2.实现strcat 3.实现strstr 4.实现strchr 5.实现strcmp 6.实现memcpy 7.实现memmove为了更好的去理解这几个函数的用法,自己去实现一下功能,才能更好的学习#include<assert.h>size_t Strlen(const char* str){ //无符号整型 assert(str !...
2019-02-17 18:37:27
1999
1
原创 初阶C-0215
1.实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDABvoid left_rotate(char* str,int k){ while(k--){ char tmp = *str; char* cur = str; while(*(cur + 1)){ //判断真假是否到了‘\0’ *...
2019-02-16 12:25:12
167
原创 shelve.open()函数打开时的路径问题
今日自学看到了一个简单的数据库应用程序中间利用了shelve这个模块,里面最让人关心的就是open函数,毕竟时打开文件并且读取# -*- coding: utf-8 -*-import shelvedef store_person(db): # 让用户输入数据并将其存储到shelve对象当中 pid = input('Enter unique ID number:') ...
2019-01-29 23:21:15
761
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人