自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rice__的博客

学鸭学~

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

原创 C语言[栈]求解迷宫[所有路径]

运行结果截图(八方向可走)手写栈 LinkStack.h图 Maze.h#pragma warning(disable:4996)#ifndef MAZE_H_#define MAZE_H_#include<conio.h>#include <stdlib.h>#include <stdio.h>#include "LinkStack.h"typedef struct MAZE{ int size; int** data;}..

2021-05-23 18:03:35 1219 1

原创 C语言[队列]实现迷宫求解(文件读取图)

手写队列 Queue.h#ifndef SEQQUEUE_H#define SEQQUEUE_H#include <stdio.h>#include <stdlib.h>typedef struct Point{ int x; int y; struct Point* pre; // 保存路径中的上一个节点}Point;typedef Point* DataType;struct Node{ DataType data; struct Nod.

2021-05-23 17:54:36 1057

原创 ECharts 饼状图

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script></h.

2021-05-12 11:57:07 406

原创 ECharts 双Y轴柱形图

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script></h.

2021-05-12 11:50:15 1041

原创 C语言[栈]实现迷宫求解(文件读取图)

手写栈 LinkStack.h#ifndef LINKSTACK_H#define LINKSTACK_Htypedef enum { true = 1, false = 0 } bool;typedef int Data;struct Node { Data data; struct Node* next;};typedef struct Node* PNode;typedef struct Node* LinkStack;LinkStack CreatStack(){ .

2021-04-09 22:27:56 1033

原创 mysql笔记(六)--锁

文章目录(一) mysql笔记–基本概念(二) mysql笔记–基本操作(三) mysql笔记–事务(四) mysql笔记–索引(五) mysql笔记–其他操作(六) mysql笔记–锁1. 读写锁读锁会阻塞写,但不会阻塞读写锁会阻塞读和写2. 行页表锁对表中的记录加锁,叫做记录锁,又称行锁,行锁只锁定一行,偏写表锁会锁定整个表,偏读页锁在行锁和表锁之间3. InnoDB自动加锁对于UPDATE、DELETE和INSERT语句,InnoDB会自动给涉及及数据集加

2020-09-15 21:05:26 105

原创 gdb及其core调试

gdb快速入门(1) 编译时需加 -g参数,gdb + app进入调试 r或run运行,退出q(2) 启动, start停在main函数(3) n或next下一条指令(4) s或step下一条指令,可以进入函数内部(非库函数)(5) 运行前指定参数 set args 1 2(也可用于改变变量值) 或直接 run 1 2(6) 断点b或break, c或continue下一个断点,d删除断点,条件断点+if(7) p或print打印变量值,ptype打印变量类型,list查看源码(8) di.

2020-08-19 21:30:36 244

原创 静态与动态链接库

静态库(.a后缀)(1)生成.o文件(即二进制文件,gcc -c生成)(2)生成库: ar rcs libCalc.a *.o(3)查看: nm + 静态库文件.a(4)使用: gcc -main.c -o app -L lib/ -l Calc (-l指定库名,把lib与后缀去掉)动态库(共享库)(1)与位置无关,即通过偏移量去查找 -fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),运行时加入内存(2)生成二进制: g..

2020-08-19 21:23:46 114

原创 Linux的奇怪错误记录

error: ‘for’ loop initial declarations are only allowed in C99 modefor(int i = 0; i < 31; i++){note提示里面已有解决方法note: use option -std=c99 or -std=gnu99 to compile your code所以gcc只需要添加参数: gcc -std=c99 target.cerror: unknown type name ‘sigset_t.

2020-07-08 17:20:49 1624

原创 mysql笔记(五)--其他操作

文章目录(一) mysql笔记–基本概念(二) mysql笔记–基本操作(三) mysql笔记–事务(四) mysql笔记–索引(五) mysql笔记–其他操作1. 视图    某个查询语句设置别名,方便日后使用,即创建一个临时表,是虚拟的表,因为保存的是语句(不常,不方便维护用)创建create view 视图名称 as SQL修改alter view 视图名称 as SQL删除drop view 视图名称;2. 触发器&n

2020-06-23 22:51:55 193

原创 mysql笔记(四)--索引

文章目录(一) mysql笔记–基本概念(二) mysql笔记–基本操作(三) mysql笔记–事务(四) mysql笔记–索引(五) mysql笔记–其他操作4. 索引    索引的作用就是加速查找,查询数据库时不直接读取硬盘(前提要命中索引),每条索引的建立需要创建索引文件,所以索引影响插入删除速度4.1 索引类型及存储无索引:从前到后依次查找索引类型:主键索引:加速查找 + 不能为空 + 不能重复普通索引:加速查找唯一索引:加速查

2020-06-23 22:32:36 166

原创 mysql笔记(三)--事务

文章目录(一) mysql笔记–基本概念(二) mysql笔记–基本操作(三) mysql笔记–事务(四) mysql笔记–索引(五) mysql笔记–其他操作3. 事务    事务保证了一些操作同时成功或者同时失败,例如转账,即提供撤销机会mysql默认开启事务(自动提交), select @@autocommit;查看;写完sql语句后需要执行commit;提交后无法撤销,若事务未结束更改表属性或其他操作会隐式提交  &n

2020-06-23 22:05:06 123

原创 mysql笔记(二)--基本操作

文章目录(一) mysql笔记–基本概念(二) mysql笔记–基本操作(三) mysql笔记–事务(四) mysql笔记–索引(五) mysql笔记–其他操作2.1 数据库与表2.1.1 基本操作创建 create database db default charset utf8; 删除 drop database db;查看 数据库 show databases; 表 show tables;进入数据库 use databasesName;查看表描述 describe my

2020-06-23 21:44:15 212

原创 mysql笔记(一)--基本概念

文章目录(一) mysql笔记–基本概念(二) mysql笔记–基本操作(三) mysql笔记–事务(四) mysql笔记–索引(五) mysql笔记–其他操作1.1 类型数据库分为关系型数据库与非关系型关系型:sqllite,db2,oracle,access,sql server,mysql非关系型:MongoDB,redis可视化界面与命令行1.2 约束1.2.1 主键约束    它能够唯一确定一张表中的一条记录,增加主键约束之

2020-06-23 20:29:25 187

原创 C++类模板实现二叉搜索树(BST)与三种遍历

实现了基本的插入与查找(递归与迭代)功能实现二叉树的三种遍历方式(迭代实现)头文件如下#pragma once#include<stack>#include<queue>template<class T> class BinarySearchTree;//树结点template<class T>class TreeNode{public: TreeNode(const T& d) :data(d), left(0),.

2020-06-13 22:49:29 552

原创 C++类模板实现链表与简单迭代器

实现了链表简单的几个功能迭代器并不实用,写着玩(未重载操作符)头文件如下#pragma oncetemplate<class T> class MyList;template<class T> class ListIterator;//链表结点template<class T>class Node{public: Node(T item) : date(item) {}; friend class MyList<T>; f.

2020-06-13 22:38:14 280

原创 C++类模板实现大根堆

    大根堆是一种树形的结构,所有父结点都大于子结点,一般用一维数组表示,若父结点下标为n (开始下标从0开始),则左孩子下标为 2n+1.右孩子为2n+2堆数据使用STL向量vector保存容量vector自动扩充头文件如下#pragma once#include<vector>template <class T>class MaxHeap{public: MaxHeap(size_t capacity = 1

2020-06-13 22:26:58 368

原创 C++类模板实现队列(动态数组实现)

使用动态数组保存数据队列满自动扩充容量头文件如下#pragma oncetemplate <class T>class MyQueue{public: MyQueue(size_t n = 10); ~MyQueue(); void Push(const T&); void Pop(); T& Front() const; T& Rear() const; bool IsEmpty() const; size_t Size() c.

2020-06-13 22:11:43 633

原创 C++类模板实现队列(链表实现)

使用链表保存数据头文件如下#pragma oncetemplate <class T>class LinkQueue{public: LinkQueue(); ~LinkQueue(); bool IsEmpty(); size_t Size(); void Push(const T&); void Pop(); void Clear(); T& Front() const;private: struct LinkNode { .

2020-06-13 22:00:05 313

原创 C++类模板实现栈(链表实现)

使用链表保存数据头文件如下#pragma oncetemplate <class T> class LinkStack;//保存数据结点template <class T>class LinkNode{public: LinkNode(const T& d = T(), LinkNode* n = nullptr); friend class LinkStack<T>;private: T data; LinkNode* ne.

2020-06-13 21:55:18 577

原创 C++类模板实现栈(动态数组实现)

使用动态数组保存数据栈满自动扩充数组容量头文件如下#pragma oncetemplate <class T>class MyStack{public: MyStack(size_t n = 10); ~MyStack(); void Push(const T&); void Pop(); T& Top() const; bool IsEmpty() const; size_t Size() const;private: size_t.

2020-06-13 21:50:15 755

原创 C++实现基数排序

时间复杂度: O(d*n)空间复杂度: O(n)稳定性: 稳定空间换取时间,代码实现//基数排序,获取最大位数int GetMaxBit(int arr[], int n) { int bit = 1; int factor = 10; for (size_t i = 0; i < n; i++) { if (arr[i] >= factor) { factor *= 10; bit++; } } return bit;}//基数.

2020-06-07 23:51:59 263

原创 C++实现归并排序

时间复杂度: O(nlog2n)空间复杂度: O(n)稳定性: 稳定其原理是自底向上俩俩交换成有序合并,代码实现//归并排序void Merge(int arr1[], int arr2[], int n1, int n2);void MergeSort(int arr[], int n) { if (n > 1) { int mid = n / 2; MergeSort(arr, mid); MergeSort(arr + mid, n - mid); Me.

2020-06-07 23:46:37 160

原创 C++实现选择排序(简单选择、堆排序)

排序名称时间复杂度空间复杂度稳定性简单选择排序O(n^2)O(1)不稳定堆排序O(nlog2n)O(1)不稳定1. 简单选择排序void SelectSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { int min = i; //查找最小的元素 for (int j = i + 1; j < n; j++) { if (arr[min] > arr[...

2020-06-07 23:39:37 146

原创 C++实现插入排序(直接插入、希尔排序)

排序名称时间复杂度空间复杂度稳定性直接插入排序O(n^2)O(1)稳定希尔排序O(nlog2n)O(1)不稳定1. 直接插入排序void InsertSort(int arr[], int n) { for (int i = 0; i < n; i++) { if (arr[i] < arr[i-1]){ int cur = arr[i]; int j = i - 1; for (; cur < arr[j]; j...

2020-06-07 23:32:39 166

原创 C++实现交换排序(冒泡、快速排序)

排序名称时间复杂度空间复杂度稳定性冒泡排序O(n^2)O(1)稳定快速排序O(nlog2n)O(nlog2n)不稳定1. 冒泡排序void BubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) for (int j = 0; j < n - i - 1; j++) if (arr[j] > arr[j + 1]) std::swap(arr[j],...

2020-06-07 23:26:39 170

原创 C++最小优先队列实现dijkstra算法

算法思想算法伪代码测试用例过程代码实现#include <iostream>#include <cstdio>#include <vector>#include <queue>#include <iomanip>using namespace std;#define max 110 //最大顶点个数#define INF 0xfffff //权值上限int n; //顶点数str.

2020-06-07 10:25:41 2136

原创 C++实现dijkstra与floyd算法

dijkstra是求一个顶点到其他所有顶点的最小距离,类似普里姆算法floyd是把所有结点之间的最小距离求出本程序使用接邻矩阵保存图,测试用例如下图:#pragma once#include <iostream>#include <iomanip>#include <map>using namespace std;template<class T>class MatriGraphx{public: MatriGraphx(s.

2020-06-06 23:35:55 326

原创 C++实现prim与kruskal算法

#pragma once#include <iostream>#include <iomanip>#include <map>using namespace std;template<class T>class MatriGraphx{public: MatriGraphx(size_t capacity = 20); ~MatriGraphx(); class Vertex//顶点 { public: Vertex(T v.

2020-06-06 13:36:26 384

原创 C++图的邻接表模板类与遍历算法

简单实现图的邻接表深度优先(DFS)与广度优先算法(BFS)遍历图头文件#pragma once#include <iostream>#include <list>#include <stack>#include <queue>using namespace std;template<class T>class AdjacencyGraph{public: AdjacencyGraph(size_t capaci.

2020-06-03 23:37:28 381

原创 C++图的邻接矩阵模板类

简单实现图的邻接矩阵,头文件如下#pragma once#include <iostream>using namespace std;template<class T>class MatriGraphx{public: MatriGraphx(size_t capacity = 20); ~MatriGraphx(); class Vertex//顶点 { public: Vertex(T v) { val = v; } friend cla.

2020-06-03 23:31:46 428

原创 冒泡、选择、插入排序及分析

排序名称时间复杂度空间复杂度稳定性冒泡排序O(n^2)O(1)稳定选择排序O(n^2)O(1)不稳定插入排序O(n^2)O(1)稳定稳定性即排序后相同的元素的前后相对次序是否改变1. 冒泡排序void BubbleSort(int arr[], int n) { for (int i = 0; i < n - 1; i++) for (int j = 0; j < n - i - 1; j++) if (arr[...

2020-05-16 22:22:48 145

原创 Linux--shell小总结

1.shell环境    Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,通常用的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。    在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bi

2020-05-11 15:59:05 165

原创 Linux--gcc/gdb基础

(1)gcc编译器后缀名解释gcc通过后缀来区别输入文件的类别:.c 为后缀的文件:C语言源代码文件.a 为后缀的文件:是由目标文件构成的库文件.C,.cc或 .cxx为后缀的文件:是C++源代码文件.h 为后缀的文件:头文件.i 为后缀的文件:是已经预处理过的C源代码文件.ii 为后缀的文件:是已经预处理过的C++源代码文件.o 为后缀的文件:是编译后的目标文件.s 为后缀的文件:是汇编语言源代码文件.S 为后缀的文件:是经过预编译的汇编语言源代码文件常用选项警.

2020-05-10 17:04:48 157

原创 Linux--make基础

(1)编译过程预处理 gcc -E hello.c -o helle.i编译 gcc -S hello.i -o hello.s汇编 gcc -c hello.s -o hello.o链接 gcc hello.o -o hello (2)make使用参数include用于引入配置文件,makefile文件中配置分开编辑如直接加入当前目录...

2020-05-02 23:24:41 192

原创 C++几种命名规则

匈牙利命名法基本原则是:变量名=属性+类型+对象描述Windows风格的匈牙利命名法驼峰命名法小驼峰(CamelCase)变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。大驼峰(PascalCase)大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,属性,命名空间等。Unix命名规则这个带下划线类/结...

2020-03-30 11:40:21 444

转载 MFC显示MAT图片(打开文件或摄像头)

基本参数:opencv获取 mat图片Picture Control的ID标识 IDC_STATIC2方法1:文件读入 CStatic* pwnd = (CStatic*)GetDlgItem(IDC_STATIC2); CRect rect; pwnd->GetWindowRect(rect); pwnd->ModifyStyle(0xf, SS_BITMAP |...

2020-03-29 11:17:24 334

原创 C++11并发与多线程总结(九) -- 原子操作atomic简介

(1)简介若多个线程操作一个共享数据,而共享数据只是简单的操作,若使用锁来对其进行保护,效率十分低下引入原子操作,即不需要互斥量的多线程并发保护其使用方式类似于普通数据,多个线程对其操作的过程不会打断其完整的数据写入,即不会出现中间状态只针对单个变量,一般用于计数统计(2)使用方式1.模板类,定义后与变量使用方式一致2.不需要用到互斥量加锁的多线程并发模式3.其对数据的操作...

2020-03-26 20:54:41 472

原创 C++11并发与多线程总结(八) --packaged_task与promise

(1)packaged_task<>用于打包管理函数,可从中获取函数返回值可以打包lambda表达式,用法相同使用方式同普通函数直接调用可作为参数传入线程并用get_future获得返回值1.可用函数创建,也可用lamda表达式创建2.可用线程或直接调用,用法同函数3.放入容器中方便管理,push的时候需使用std::move变成右值 std::package...

2020-03-26 20:29:43 338

原创 C++11并发与多线程总结(七) -- std::async异步任务与std::future

(1)简介std::async一般与std::future< >配套使用,前者异步或同步调用一个函数,返回一个future的模板类对象,在future中可以拿到入口函数的返回值 (2)std::async1.async异步调用函数,即创建一个线程,返回一个future模板类2.async使用方式同thread 也可传入类函数(记住前面加&)3.第一参数可以传入 ...

2020-03-26 18:00:18 819

空空如也

空空如也

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

TA关注的人

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