自定义博客皮肤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)
  • 资源 (2)
  • 收藏
  • 关注

原创 Git简单教程

文章目录Git简介集中式和分布式创建版本库时光机穿梭版本回退工作区和暂存区管理修改撤销修改删除文件远程仓库添加远程库从远程库克隆分支管理创建与合并分支解决冲突分支管理策略Bug分支Feature分支多人协作Rebase(变基)标签管理创建标签操作标签使用GitHub使用码云自定义Git忽略特殊文件配置别名Git简介集中式和分布式Git是目前世界上最先进的分布式版本控制系统(没有之一)。...

2019-12-30 10:48:00 225

原创 SQL简单教程

文章目录关系数据库概述MySQL关系模型主键外键索引查询数据条件查询投影查询排序分页查询聚合查询多表查询(尽量不使用)连接查询修改数据INSERTUPDATEDELETEMySQL管理MySQL实用SQL语句事务Read Uncommitted(级别最低,会遇到脏读、不可重复读、幻读)Read Committed(会遇到不可重复读、幻读)Repeatable Read(会遇到幻读)Seriali...

2019-12-25 21:04:10 316

原创 使用Python3通过Flask-Mail模块实现异步邮件发送及验证激活

邮箱基础知识Flask-Mail官方文档,如何判断用户输入的邮箱格式是否正确?:通过正则表达式判断邮箱格式是否正确,转义字符,用户名@服务器域名,用户名只能以数字或字母开头和结尾。regexp = '^[a-zA-Z0-9][a-zA-Z0-9_-]*[a-zA-Z0-9]@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]{2,4}){1,}$'pat = re....

2019-12-19 11:03:33 1002

原创 使用python3通过七牛云上传图片

发现问题使用七牛云SDK的图片上传函数,如以下3种方法都无法成功上传。ret, info = put_stream(token, save_file_name, source_file.stream, "qiniu", os.fstat(source_file.stream.fileno()).st_size)ret, info = pu...

2019-12-19 09:49:42 922

原创 《剑指offer》面试题 68:树中两个结点的最低公共祖先(C++实现)

题目输入两个树结点,求它们的最低公共祖先。代码#pragma once#include <vector>#include <list>using namespace std;struct TreeNode{ int m_nValue; vector<TreeNode*> m_vChildren;};/* 普通树 通过利用辅助...

2019-09-06 15:41:26 249

原创 《剑指offer》面试题 26:树的子结构(C++实现)

题目输入两棵二叉树A和B,判断B是不是A的子结构。代码#pragma once// 题目:输入两棵二叉树A和B,判断B是不是A的子结构。struct BinaryTreeNode{ double m_dbValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};/** * 1 递归 查找A中是否有B的...

2019-09-02 21:40:52 176

原创 《剑指offer》面试题 25:合并两个排序的链表(C++实现)

题目输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。代码#pragma oncestruct ListNode{ int m_nValue; ListNode* m_pNext;};/** * 递归 注意递归结束条件 */ListNode* mergeList(ListNode* pHead1, ListNode* pHead2)...

2019-09-02 21:39:07 215

原创 《剑指offer》面试题 24:反转链表(C++实现)

题目定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。代码#pragma once// 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的// 头结点。struct ListNode{ int m_nValue; ListNode* m_pNext;};/** * 定义3个指针,在遍历过程中指向前一个节点 当前节点 下...

2019-09-02 21:35:39 195

原创 《剑指offer》面试题 23:链表中环的入口结点(C++实现)

题目一个链表中包含环,如何找出环的入口结点?代码#pragma once// 题目:一个链表中包含环,如何找出环的入口结点?struct ListNode{ int m_nValue; ListNode* m_pNext;};/** * 分解问题:1 链表中是否有环,找到环中的任意节点(两个辅助指针) * 2 算出环中的节点数(后移计数) * 3 找到环的入...

2019-09-02 21:33:43 197

原创 《剑指offer》面试题 22:链表中倒数第k个结点(C++实现)

题目输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。代码#pragma once// 题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,// 本题从1开始计数,即链表的尾结点是...

2019-09-02 21:30:40 185

原创 《剑指offer》面试题 21:调整数组顺序使奇数位于偶数前面(C++实现)

题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。代码#pragma once// 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有// 奇数位于数组的前半部分,所有偶数位于数组的后半部分。/** * 采用 两个辅助指针 变量指向数组头尾 * 前为偶后为奇则交换 * 采用 函...

2019-09-02 21:26:50 186

原创 《剑指offer》面试题 20:表示数值的字符串(C++实现)

题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”、“5e2”、“-123”、“3.1416”及“-1E-16”都表示数值,但“12e”、“1a3.14”、“1.2.3”、“+-5”及“12e+5.4”都不是。代码/** * 注意||和&&前后调用函数的放置 需要符合 短路规则 以及减少计算量 */#pragma once...

2019-08-29 21:47:09 245

原创 《剑指offer》面试题 19:正则表达式匹配(C++实现)

题目请实现一个函数用来匹配包含'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"及"ab*a"均不匹配。代码#pragma once// 题目:请实现一个函数用来匹配包含'.'和'*'的正则...

2019-08-29 21:45:05 305

原创 《剑指offer》面试题 18:删除链表的结点(C++实现)

题目题目(一):O(1)时间内删除单链表节点给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。题目(二):删除链表中重复的结点在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复结点被删除之后,链表如图3.4(b)所示。代码#pragma oncestruct ListNode{ int m_nValue; ListNod...

2019-08-29 21:41:29 177

原创 《剑指offer》面试题 17:打印1到最大的n位数(C++实现)

题目输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。代码#pragma once#include <string>/* 方法1 用字符串来表示大数 字符串模拟数字加法 */void print1ToMaxOfNDigits_1(int n){ if (n <= 0) return; char...

2019-08-29 21:37:03 194

原创 《剑指offer》面试题 16:数值的整数次方(C++实现)

题目实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。代码#pragma once//#include <iostream>//#include <cmath>//using namespace std;// 考虑问题的全面性 快速求乘方的...

2019-08-29 21:34:16 169

原创 C++实现2048小游戏(使用ncurses库)

开发要点一次只能合并相邻的两个数字,例如 [2 2 2 2] ,向右合并以后是 [空 空 4 4] ,不是 [空 空 空 8] 每次合并的时候,合并方向优先级高,例如 [空 2 2 2],向右合并以后是 [空 空 2 4],不是 [空 空 4 2] 判断游戏胜利或者失败 每次合并以后随机新出4的概率10%开发步骤引入curses库 绘制游戏界面 游戏状态切换 重启初始...

2019-08-29 10:50:38 491

原创 《剑指offer》面试题 15:二进制中1的个数(C++实现)

题目请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。代码#pragma once/* 负数右移时会用符号位1来填补 */// 方法1 改用左移int numberOf1_1(int n){ int count = 0; unsigned int flag = 1; // 需是无符号整数...

2019-08-27 12:20:12 144

原创 《剑指offer》面试题 14:剪绳子(C++实现)

题目给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m≥1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]*k[1]*…*k[m]可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。代码#pragma once#include <cmath>// 题目:给你一根长度...

2019-08-27 12:17:47 211

原创 《剑指offer》面试题 12:矩阵中的路径(C++实现)

题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用下划线标出)。但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格...

2019-08-27 12:15:09 249

原创 《剑指offer》面试题 11:旋转数组的最小数字(C++实现)

题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。代码#pragma once#include <exception>#include <cstdlib> // 包含srand(...

2019-08-27 12:11:18 122

原创 《剑指offer》面试题 10:斐波那契数列(C++实现)

题目写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。代码#pragma once// 用递归的方法重复性太高,效率太低// 采用循环的方法,把中间项保存起来 O(n)long long Fibonacci(unsigned int n){ int initial[2] = { 0,1 }; if (n < 2) return initia...

2019-08-27 11:34:35 148

原创 《剑指offer》面试题 9:用两个栈实现队列(C++实现)

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。代码#pragma once#include <exception>#include <stack>using namespace std; // 容器定义在此命名空间里template &lt...

2019-08-27 11:31:59 110

原创 《剑指offer》面试题 8:二叉树的下一个结点(C++实现)

题目给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。代码#pragma once// 题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?// 树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。/** * 分3种情况:1 有右子树 2...

2019-08-27 11:28:47 171

原创 《剑指offer》面试题 7:重建二叉树(C++实现)

题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2, 4, 7, 3, 5, 6, 8}和中序遍历序列{4, 7, 2, 1, 5, 3, 8, 6},则重建出图2.6所示的二叉树并输出它的头结点。代码#pragma once#include <exception>// 题...

2019-08-27 11:25:50 251

原创 《剑指offer》面试题 6:从尾到头打印链表(C++实现)

题目输入一个链表的头结点,从尾到头反过来打印出每个结点的值。代码#pragma once#include <stack>// 单链表struct ListNode{ int m_nKey; ListNode* m_pNext;};// 后进先出 使用栈void printListReversingly(ListNode* pHead){ std:...

2019-08-27 11:06:15 156

原创 《剑指offer》面试题 5:替换空格(C++实现)

题目请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。代码#pragma once/** * 在从前往后替换需要移动相同字符多次的情况下,考虑从后往前移动字符 * 可以减少移动次数,提高时间效率。 * 内存覆盖的问题。 */// 输入字符串数组及其容量void replaceBla...

2019-08-27 10:25:28 229

原创 《剑指offer》面试题 4:二维数组中的查找(C++实现)

题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码#pragma once#include <iostream>using namespace std;/** * 从具体问题入手,根据二维数组的行号和列号计算出相对于其首地址的偏移量,找出相...

2019-08-26 17:54:52 149

原创 《剑指offer》面试题 3:数组中重复的数字(C++实现)

题目面试题3(一):找出数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3。面试题3(二):不修改数组找出重复的数字在一个长度为n+1的数组里的所...

2019-08-26 17:43:26 213

原创 线性表链式存储设计与实现

linklist.h#ifndef _MYLINKLIST_H_#define _MYLINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode{ struct _tag_LinkListNode* next;}LinkListNode;LinkList* LinkList_Create();vo...

2019-05-06 16:54:29 229

原创 循环链表实现与约瑟夫问题

循环链表API函数头文件circlelist.h#pragma oncetypedef void CircleList;typedef struct _tag_CircleListNode{ struct _tag_CircleListNode* next;}CircleListNode;CircleList* CircleList_Create();void Ci...

2019-05-06 09:48:43 247

原创 线性表顺序存储设计与实现

seqlist.h//#pragma once //和下面#ifndef作用一样#ifndef _MY_SEQLIST_H_#define _MY_SEQLIST_H_typedef void SeqList;typedef void SeqListNode;//创建并且返回一个空的线性表SeqList* SeqList_Create(int capacity);//销...

2019-05-05 20:56:01 231

原创 STL综合案例 学校演讲比赛

学校演讲比赛案例:1)某市举行一场演讲比赛,共有24个人参加,按参加顺序设置参赛号。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。2)比赛方式:分组比赛第一轮分为4个小组,根据参赛号顺序依次划分,比如100-105为一组,106-111为第二组,依次类推,每组6个人,每人分别按抽签(draw)顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。...

2019-05-05 20:45:47 391

原创 预定义函数对象和函数适配器

STL常用算法练习#include <iostream>#include <algorithm>#include <functional>#include <vector>#include <list>#include <iomanip>#include <iterator> //包含ostre...

2019-05-05 20:39:16 150

原创 STL容器运用练习

string#include <iostream>#include <string>#include <algorithm>using namespace std;//1 初始化void test01(){ string s1 = "aaaaaa"; string s2("bbbbbb"); string s3 = s2; string...

2019-05-05 20:26:44 321

原创 数组模板类MyVector

类模板练习:可以管理基本数据类型,类元素,类指针定义类模板MyVector.h#pragma once#include <iostream>using namespace std;//先考虑类型int chartemplate <typename T>class MyVector{ friend ostream& operator&lt...

2019-05-03 23:55:52 1426

原创 信息系统框架集成第三方产品案例

1 数据的发送和接收报文协议CSocketProtocol.h#pragma once//定义报文协议类,纯虚函数作为面向抽象类(接口)编程class CSocketProtocol{public: //报文的初始化、发送、接收、销毁函数,返回值为0则函数正常运行 virtual int cltSocketInit() = 0; virtual int cltSocke...

2019-05-03 13:25:58 446

原创 算法中的函数对象和谓词

函数对象 谓词//算法中的函数对象和谓词//for_each find_if transform sort#include <iostream>#include <algorithm>//#include <functional>#include <vector>#include <string>#inc...

2019-04-30 12:24:55 322

原创 9 标准I/O流

9 C++输入和输出流9.1 I/O流的概念和流类库的结构C++输入输出包含以下三个方面的内容:标准设备 标准I/O外存磁盘文件 文件I/O内存 串I/OC++的I/O对C的发展–类型安全和可扩展性在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O操作是类型安全(type safe)的。C++的I/O操作是可扩展的,...

2019-04-29 16:48:24 357

原创 7 类型转换 和 8 异常处理

7 C++的类型转换7.1 类型转换名称和语法C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。static_cast 静态类型转换。如int转换成charreinterpret_cast 重新解释类型dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型转换。const_cast, 字面上理解就是去const属性。4种类型转换的格式:...

2019-04-29 16:42:49 165

Qt Creator快速入门 第三版 完整清晰版 带书签 PDF

Qt Creator快速入门第3版PDF是一款讲述Qt的基本应用,以及Qt在图形动画、影音媒体、数据处理和网络通信方面的应用内容,Qt Creator快速入门第3版内容全面、实用,讲解通俗易懂,适合没有Qt编程基础、有Qt编程基础但是没有形成知识框架以及想学习Qt某一方面应用的读者。仅作学习用。

2019-06-24

Qt及Qt Quick开发实战精解 完整带书签 清晰版PDF

《Qt及Qt Quick开发实战精解》主要讲解了5个Qt综合应用程序的开发过程和QtQuick的相关内容。本书内容主要包括两部分:第一部分是多文档编辑器、方块游戏、音乐播放器、数据管理系统、局域网聊天工具这5个实用的Qt实例的详细讲解;第二部分是QtQuick技术的全面介绍。 《Qt及QtQuick开发实战精解》的内容全面、实用,讲解通俗易懂,适合有一定Qt基础并且想学习Qt综合实例开发或者想学习QtQuick技术的读者。对于没有Qt基础的读者,可以先学习《QtCreator快速入门》一书。仅作学习用。

2019-06-10

空空如也

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

TA关注的人

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