- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 【无标题】
导出CSDN文章为PDF网上有很多方法,但都有些瑕疵,这个方法我亲测,在chrome和Edge上都很好。F12进入开发者模式,在控制台输入一下代码,回车。(function doPrint(){ 'use strict'; var articleBox = $("div.article_content"); articleBox.removeAttr("style"); var head_str = ""; var foot_str = ""; var ol
2021-12-28 18:22:56 326
原创 生成SQLite3.lib
生成SQLite3.lib首先官网下载sqlite-dll-win32-x86-xxxxxxx.zip 或者 sqlite-dll-win32-x64-xxxxxxx.zip 解压到 F:\sqlite。开始菜单打开 x86 Native Tools Command Prompt for VS 2019 或者 x64 Native Tools Command Prompt for VS 2019 。F:cd F:\sqlitelib /def:sqlite3.def /mach
2021-10-09 15:56:21 804
原创 cmake + Qt 项目 去掉控制台
cmake + Qt 项目 去掉控制台add_executable()命令有个参数,默认不添加是生成控制台程序,添加***WIN32***后为生成不带控制台的窗口程序。add_executable(helloworldWIN32mainwindow.uimainwindow.cppmain.cppresources.qrc)...
2021-07-23 11:11:11 914
原创 opencv-4.5.1 with contrib
opencv-4.5.1 with contribopencv下载的exe安装是不包含拓展模块的,自己下载源码编译会因为 the wall 导致一些东西下载失败,可以自己另外下载,放到相应位置,有点麻烦。其实 cmake 的报错信息写的很明白了怎么整,但找到这说明你也不想看cmake写了啥。https://download.csdn.net/download/questionhahaha/16241045opencv-4.5.1的完整编译包,下载后解压到 C:\Git 目录下(保证和我的一样),找
2021-03-30 17:50:45 262
转载 十大经典排序算法
十大经典排序算法动图演示我也自己写过,但这个比我写的好多了。https://www.cnblogs.com/onepixel/articles/7674659.html
2019-09-11 10:31:09 102
原创 七大查找算法
七大查找算法文章目录七大查找算法1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常 见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二...
2019-05-03 15:34:01 301
原创 排序算法C++版的介绍比较
排序算法C++版的介绍比较插入排序: 直接插入排序 希尔排序交换排序: 起泡排序 快速排序选择排序: 简单选择排序 堆排序归并排序: 二路归并排序(递归和非递归)分配排序: 桶排序 基数排序比较:时间复杂度 由图可知,在最好情况下,直接插入排序和起泡排序最快;在平均情况下,快速排序最快;...
2019-05-03 15:09:02 119
原创 直接插入排序
直接插入排序是一种稳定的排序算法,时间复杂度是 O(n^2) 。基本思想: 依次将待排序序列中的每一个记录插入到一个已排好序的序列中,直到全部记录都排序好。代码:void InsertSort(int r[],int n){ int i, j; for (i = 2; i <= n;i++) { r[0] = r[i]; for (j = i - 1; r[0] ...
2019-04-26 00:09:42 132
原创 希尔排序
希尔排序是一种不稳定的排序算法,时间复杂度是 O(n^2)和 O(nlog2 N)之间。基本思想: 先将整个待排序记录序列分割成若干个子序列,在子序列内分别进行直接插入排序,待整个序列基本有序时,再对全体记录进行一次直接插入排序。代码:void ShellSort(int r[],int n){ int d, i, j; for (d = n / 2; d >= 1;d =...
2019-04-26 00:09:25 118
原创 桶式排序
桶式排序是一种稳定的排序方法,时间复杂度为 O(n + m)。基本思想: 假设待排序记录的值都在 0~m-1 之间,设置m个桶,首先将值为i的记录分配在第i个桶中,然后再将各个桶中的记录依次收集起来。代码:struct Node { int key; int next;};struct QueueNode{ int front; int rear;};void ...
2019-04-26 00:08:41 943
原创 起泡排序
起泡排序是一种稳定的排序算法,时间复杂度 O(n^2)。基本思想: 两两比较相邻记录的关键码,如果反序则交换,直到没有反序代码:void BubbleSort(int r[],int n){ int exchange = n; while (exchange != 0) { int bound = exchange; exchange = 0; for (int j...
2019-04-26 00:08:17 198
原创 快速排序
快速排序是一种不稳定的排序算法,时间复杂度 O(nlog2 N)。基本思想: 首先选一个轴值(pivot,即比较的基准),将待排序记录划分为独立的两部分,左侧记录的关键码均小于或等于轴值。右侧记录的关键码均大于或等于轴值,然后分别对这两部分重复上述过程,直到整个序列有序。代码:int Partition(int r[],int first,int end)//一次划分算法{ in...
2019-04-26 00:07:57 157 1
原创 简单选择排序
简单选择排序是一种不稳定的排序方法,时间复杂度为 O(n^2)。基本思想: 第i趟排序在待排序序列r[i]~r[n](1 <= i <= n-1)中选取关键码最小的记录,并和第i个记录交换作为有序序列的第i个记录。代码:void SelectSort(int r[],int n){ for (int i = 1; i < n;i++) { int index...
2019-04-26 00:07:24 268
原创 基数排序
基数排序是一种稳定的排序方法,时间复杂度为 O(n + m)。基本思想: 将关键码看成由若干个子关键码复合而成,然后借助分配和收集操作采用LSD方法进行排序。代码:struct Node //定义静态链表存储待排序记录序列{ int key[d]; //记录的键值,包括d个子关键码 int next; //游标,下一个键值在数组中的下标 };struct Queu...
2019-04-26 00:06:59 185
原创 归并排序
归并排序是一种稳定的排序方法,时间复杂度是 O(nlog2 N)。基本思想: 将若干有序序列逐步归并,最终归并为一个有序序列。代码:void Merge(int r[],int r1[],int s,int m,int t)//一次归并算法{ int i, j, k; i = s; j = m + 1; k = s; while (i <= m &&...
2019-04-26 00:06:39 147
原创 堆排序
堆排序是一种不稳定的方法,时间复杂度为 O(nlog2 N)。基本思想: 首先将待排序的记录序列构造成一个堆,此时,选出了对重所有记录的最大者即堆顶记录。然后将堆顶记录移走,并将剩余的记录在调整成堆,这样又找出了次大的记录。一次类推,直到堆中只有一个记录为止。代码:void Sift(int r[],int k,int m)//筛选法调整堆的算法{ int i = k; int ...
2019-04-26 00:06:21 110
转载 CC++中Static的作用
C和C++中Static的作用转载自:https://www.cnblogs.com/qintangtao/p/3285937.htmlC++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字stat...
2019-04-22 22:59:06 989
原创 C和C++程序的内存分配机制
程序的内存分配一:C语言中的内存机制在C语言中,内存主要分为如下5个存储区:(1)栈(Stack):位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效。(2)堆(Heap):由程序员用malloc/calloc/realloc分配,free释放。如果程序员忘记free了,则会造成内存泄露,程序结束时该片内存会由OS回收。(3)全局区/静态区(Global S...
2019-04-22 22:46:57 598
原创 C++二叉链表的模板实现
C++二叉链表的模板实现#pragma once//二叉链表的实现#include <iostream>#include <queue>#include <stack>using namespace std;template<Class DataType>struct BiNode{ DataType data; BiN...
2019-04-21 00:37:51 506
原创 C++链队列的模板实现
C++链队列的模板实现#pragma once//链队列的实现#include <iostream>using namespace std;template<typename DataType>struct Node{ DataType data; Node<DataType>* next;};template<typename...
2019-04-21 00:37:28 471
原创 C++顺序队列(循环队列)的模板实现
C++顺序队列(循环队列)的模板实现#pragma once//循环队列的实现#include <iostream>using namespace std;const int QueneSize = 100;template<typename DataType>class CirQueue{public: CirQueue(){ front = re...
2019-04-21 00:36:08 507
原创 C++链栈的模板实现
C++链栈的模板实现#pragma once//链栈的实现#include <iostream>using namespace std;template<typename DataType>struct Node{ DataType data; Node<DataType>* next;};template<typename D...
2019-04-21 00:35:25 412
原创 C++共享栈的模板实现
C++共享栈的模板实现#pragma once//共享栈的实现#include <iostream>using namespace std;const int StackSize11 = 100;template<typename DataType>class BothStack{public: BothStack(){ top1 = -1; to...
2019-04-21 00:34:41 628
原创 C++顺序栈的模板实现
C++顺序栈的模板实现#pragma once//顺序栈的实现#include <iostream>using namespace std;const int StackSize = 10;template<typename DataType>class SeqStack{public: SeqStack(){ top = -1; } ~SeqS...
2019-04-21 00:34:16 334
原创 C++单链表的模板实现
C++单链表的模板实现#pragma once//单链表的实现#include <iostream>using namespace std;template<typename DataType>struct Node{ DataType data; Node<DataType>* next;};template<typename...
2019-04-21 00:29:46 368
原创 C++线性表的模板实现
C++线性表的模板实现#pragma once//顺序表的实现#include <iostream>using namespace std;const int MaxSize = 100; template<typename DataType> class SeqList{public: SeqList(){ length = 0; }...
2019-04-21 00:29:06 931
转载 腾讯研发类试题(C++方向)
腾讯研发类试题(C++方向)转自:https://blog.csdn.net/Xiongchao99/article/details/733812801、C和C++的特点与区别?答:(1)C语言特点:1.作为一种面向过程的结构化语言,易于调试和维护;2.表现能力和处理能力极强,可以直接访问内存的物理地址;3.C语言实现了对硬件的编程操作,也适合于应用软件的开发;4.C语言还具有效率高...
2019-04-18 23:25:35 285
原创 五层协议的体系结构
五层协议的体系结构从上到下分为:应用层: 应用层的任务是通过应用进程的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在因特网中的应用层协议很多。例如支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议,支持文件传送的 FTP 协议,等等。应用层交互的数据单元叫报文。运输层:...
2019-04-15 23:23:18 1884
原创 指针的算术运算
指针的算术运算指针二点算术运算分为两种:指针 ± 整数当一个指针和一个整数量执行算术运算时,整数在执行加减法运算前始终会根据合适的大小进行调整。这个“合适的大小”就是指针所指向类型的大小。例如:int* a; int* b = a+1; 则 b - a = sizeof(int)char* a; char* b = a+1; 则 b - a = sizeof(char)# inc...
2019-02-21 23:52:42 189
原创 CC++ 字节对齐问题
C/C++ 字节对齐问题对齐用法详解什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些...
2019-02-20 00:19:25 253
原创 内联函数:
内联函数:内联函数的定义: 将函数指定为内联函数(inline),通常就是将它在每个调用点上“内联地”展开(有时编译器根据函数的定义体,自动地取消不值得的内联),函数的代码被放入符号表中,在使用时直接进行替换(像宏一样展开),没有了调用的开销。效率更高。内联函数与宏的区别:内联函数在编译时展开,宏在预编译时展开。在编译时,内联函数可以直接被嵌入到目标代码中,而宏只是一个简单的文...
2019-02-19 22:51:45 1954
原创 CString用法
CString用法头文件 <afx.h>成员函数:CString类的构造函数CString(const CString& stringSrc);解释: 将一个已经存在的CString对象stringSrc的内容拷贝到该CString对象。例子: CString str1(_T(jizhuomi)); // 将常量字符串拷贝到str1 CStrin...
2018-12-09 23:02:18 487
原创 字符数组结束符'0'的问题
字符数组结束符’\0’的问题char str[10]={ ‘I’,’ ‘,‘a’,‘m’,’ ‘,‘h’,‘a’,‘p’,‘p’,‘y’};如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 ‘\0’ );如刚好等于,编译器也不会报错,但不安全,应由程序员把握。char str[ ]={“I am ...
2018-12-04 01:15:59 8795 4
原创 char 和 char[]的区别与联系
char* 和 char[]的区别与联系联系在大多数表达式中,使用数组类型的对象其实是使用一个指向该数组首元素的指针。例如: 作为函数的声明的参数的时候,char []是被当做char *来处理的!两种形参声明写法完全等效!区别char *指向的内存区域的大小可以随时改变。char []对应着一块内存区域,其地址和容量在生命期里不会改变。char []存放在栈内存...
2018-12-04 01:14:43 977
原创 关于VC的字符集
关于VC的字符集宽字符集(每两个字节表示任意一个字符)例如:“ABC”占6个字节,“呵呵ABC”占10个字节(这中间有5个字符,每个字符占2个字节,结果就是 5×2 = 10)。多字节字符集(就是一个或多个字节表示一个任意字符)例如:“ABC”占3个字节,“呵呵ABC”占9个字节(其中每个汉字占3字节)。...
2018-12-03 00:05:25 194
原创 WideCharToMultiByte字符串后面有乱码
错误做法:WideCharToMultiByte(CP_ACP,0,strInput,strInput.GetLength() ,p,len ,NULL,NULL);正确做法:WideCharToMultiByte(CP_ACP,0,strInput,strInput.GetLength() + 1,p,len + 1,NULL,NULL);或者:WideCharToMulti...
2018-08-29 16:29:19 1599
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人