自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ :输入/输出流

输入输出流I/O (输入/输出) 流类库提供对象之间的交互服务。流类库预定义了一批流对象,连接常用的外部设备。使用者可以定义所需的I/O流对象,使用流库提供的工作方式实现数据传输。一:流类和流对象在程序中,对数据的输入/输出是以字节流实现的。应用程序对字节序列做出各种数据解释。I/O 系统的任务就是在内存和外部设备之间稳定可靠的传输数据和解释数据。流对象可以建立和删除,可以从流中获取数据,也可以向流中添加数据。流类库流库(stream library)使用继承方法建立的输入输出

2021-09-05 16:05:27 2044

原创 搭建 GIT 服务器

一:工具介绍:GIT服务器 使用开源工具 GitBlit 官方网站:http://www.gitblit.com/ 下载最新版本。软件 GitBlit 是一个压缩包,解压后即可使用。因为 GitBlit是 Java 开发的,确保电脑安装Java运行环境 JRE 或 JDK (要求版本 > 1.7)。Java JDK 下载地址 Java SE测试jdk是否安装成功:java JDK 低版本需要配置环境变量,高版本不需要。本次使用 Java SE 15。如需配置环境变量,参考下图示例。

2021-04-05 21:17:58 849 1

原创 C语言 :进程通信

文章目录前言一、邮槽(MailSlot)1: Mailslots 概述:2: Mailslot Names(邮槽的命名):3 : 实例:4:相关 Win32 API :二、共享内存 (shared memory),文件映射1.共享文件和内存概述 [官方链接](https://docs.microsoft.com/en-us/windows/win32/memory/sharing-files-and-memory)2. 实例:3:相关 Win32 API:三、共享内存 (shared memory),文件

2020-11-01 22:50:19 1732

原创 C语言:二级指针的使用示例

一:二级指针作为函数输入参数dome1:#include <stdio.h>#include <stdlib.h>//输出数组元素void printStrArr(char **arr,int len){ if (arr==NULL||len==0) { return; } for (int i = 0; i < len;i++) { printf("%s\n", *(arr + i)); //printf("%s\n", arr[i]);

2020-07-19 19:05:10 1350

原创 数据结构:栈的应用 C语言版 -(1)

一 进制转换:十进制 N 和 其他进制 d 之间的转换 公式:N=(N÷d)∗d+N%dN=(N\div d)*d+N\%dN=(N÷d)∗d+N%d例:(1348)10=(2504)8(1348)_{10}=(2504)_8(1348)10​=(2504)8​ 运算过程如下:示例:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h&gt

2020-07-19 00:00:27 1021

原创 数据结构:栈(Stack 链式存储结构) C语言版

链式存储结构栈栈的链式存储结构,简称链栈。栈只能从栈顶来作插入和删除动作,由于链表有头指针,而栈顶指针也是必须的,所以比较好的方法是把栈顶放在链表的头部。另外,都已经有了栈顶在链表头部了,单链表中比较常用的头节点也就失去了意义,通常对于链栈来说,是不需要头结点的。对于链栈来说,基本不会存在栈满的情况,除非内存已经没有可用的使用空间,如果发生则计算机系统将死机崩溃,而不是链栈是否溢出的问题。对于空栈来说,链表原定义的头指针指向空,那么链栈的空其实就是 top=NULL。栈的链式存储结构及实现:定

2020-07-18 00:11:32 424

原创 数据结构:栈(Stack 顺序存储结构) C语言版

栈的定义栈(stack)是一种 特殊的线性表。是限定仅在表尾进行插入和删除的线性表。 (使用线性表可以模拟栈)把允许删除和插入的一端称为栈顶(top),另一端称为栈底(bottom),不含任何元素的栈称为空栈。栈又称作 后进先出 (Last In First Out) 的线性表,简称 LIFO 结构。栈的插入操作,叫做进栈,也称压栈,入栈。栈的删除操作,叫做出栈,或叫做弹栈。栈的顺序存储结构及实现既然栈是线性表的特例,那么栈的顺序存储其实也就是线性表顺序存储的简化,称为顺序栈。在栈数据结

2020-07-16 22:44:38 519

原创 数据结构:线性表链式存储结构(双向链表) C语言版

双向链表:在单链表中,有了 next 指针,这使得查找下一结点的时间复杂度为 O(1)O(1)O(1) ,可是如果我们查找上一结点的话,那最坏的时间复杂度就是 O(n)O(n)O(n) 了,因为每次都要从头开始遍历查找。双向链表就克服了这一缺陷。双向链表 ( Double Linked List ) 是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。 所以,在双向链表中的结点都有两个指针域,一个指向直接后继,了另一个指向直接前驱。typedef struct _Tag_D_LinkList_N

2020-07-12 20:18:04 548

原创 数据结构:线性表链式存储结构(循环单链表) C语言版

循环链表( circular linked list):单链表中终点结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。循环链表的定义:将单链表中最后一个数据元素的next指针指向第一个元素。 循环链表拥有链表的所有操作。循环链表解决了如何从链表当中一个结点出发,访问到链表的全部结点。为了使空链表与非空链表处理一直,通常设一个头结点,当然并不是说,循环链表一定要头节点,这需要注意。循环链表带有头结点的空链表如图:对于非空循环链表如下图:

2020-07-12 18:37:53 812

原创 数据结构:线性表链式存储结构(单链表) C语言版

线性链表:线性表的链式存储结构特点是用一种任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。这就意味这些数据元素可以存在内存未被占用的任意位置。 元素分布如下图:因此,为了表示每个数据元素 aia_iai​ 与其直接后继数据元素 ai+1a_{i+1}ai+1​ 之间的逻辑关系,对数据元素aia_iai​ 来说,除了存储其本身的信息之外,还需存储一个指示其后继的信息(即直接后继的存储位置)。这两部分信息组成数据元素 aia_iai​ 的存储映像,称为节点(node)。

2020-07-12 12:34:40 2669

原创 数据结构:线性表顺序存储结构 C语言版

线性表的定义:线性表(List): 零个或多个数据元素的有序序列。简而言之,一个线性表是n个数元素的有限序列。至于每个数据元素的具体含义,在不同的情况下各有不同,可以是一个数字或一个符号,也可以是一本书,甚至其他更复杂的信息。线性结构的特点:在数据元素的非空有限集中存在唯一一个被称作“第一个”的数据元素。存在唯一一个被称作“最后一个”的数据元素。除第一个外,集合中的每个元素均只有一个前驱。除最后一个之外 ,集合中的 每个数据元素均只有一个后继。同一线性表中的元素必定具有相同的特性,即属同一数

2020-07-12 10:11:01 472

原创 VS2019 C++ 使用 OCCI 连接调用 oracle (Windows 10)

一 :下载和配置客户端连接套件:oracle 官方下载地址:Oracle Instant Client下载 注意区分 x86和 x64。我自己用的是 x64 , Oracle 也是 x64. :(Microsoft Windows(x64)的即时客户端)点进去:下载最新版 Version 19.6.0.0.0两个压缩包:sdk(头文件,lib) 和 windows x64 基本客户端(内涵 .dll) 。下载后解压到电脑:SDK: 文件结构 ,包含头文件和 lib 以及dome文件等。

2020-06-07 20:33:02 4965

原创 C++ STL - List

list 类 (VC++)C++标准库列表类是序列容器的类模板,用于在线性排列中维护其元素,并允许在序列中的任何位置进行有效的插入和删除。 序列存储为双向链接的元素列表,每个包含一些 Type 类型的成员。语法template <class Type, class Allocator= allocator<Type>>class list参数Type要存储在列表中的元素数据类型。Allocator表示所存储分配器对象的类型,该分配器对象封装有关列表的内存分配和

2020-05-28 21:35:15 330

原创 C++ STL - Vector

vector定义容器类模板向量和多个支持模板。vector 是将给定类型的元素组织到线性序列中的容器。 它使用户可以快速随机访问任何元素,并动态添加到序列和动态从序列中删除。 vector 是随机访问性能超出限制时的首选序列容器。库 <vector 也使用了 #include <initializer_list> 语句。语法:namespace std {template <class Type, class Allocator>class vector;tem

2020-05-24 15:47:11 284

原创 C++ STL - Array

array 类(C++ 标准库)描述了一个对象,此对象控制类型 Ty 的元素的长度序列 N。 此序列存储为 Ty 的数组,包含在 array<Ty, N> 对象中。语法:template <class Ty, std::size_t N>class array;示例:#include<array>#include<iostream>using namespace std;#define LENGTH 15typedef array&l

2020-05-23 22:55:44 350

原创 C++ STL标准库

STL 组件STL 是 C++ 标准程序库的核心。STL 内的所有组件都由模板构成,其元素可以是任意型别。程序员通过选用恰当的群集类别调用其成员函数和算法中的数据即可,但代价是 STL 晦涩难懂。STL 组件主要包括容器,迭代器、算法和仿函数。容器容器即用来存储并管理某类对象的集合。每一种容器都有其优点和缺点。为满足程序的各种需求,STL 准备了多种容器类型,容器可以是 arrays 或是 linked lists,或者每个元素有特别的键值。迭代器迭代器用于在一个对象群集的元素上进行遍历动作。对

2020-05-23 11:32:58 8710 3

原创 C/C++语言:简单工厂方法模式

代码实现:文件后缀为 .cpp 如果去掉 语音朗读 .c 也可以#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<locale.h>#include<Windows.h>#include<atlstr.h>#include&...

2020-04-06 12:15:35 243

原创 C++ 无法从“const char [ ]”转换为“char *”

高版本VS中(VS2017 ,VS2019)解决方法:1:在项目属性中 ,把复合模式更改为 ‘否’2:使用强制类型转换://char* p1 = "1234";char* p1 = (char *)"1234";3:使用数组首地址赋值指针char str[10] = "123";char* s1 = str;具体原原因 个人理解 C++ 语法检测很严格 ,赋值或初始化类...

2020-04-05 11:30:16 15378 5

转载 C语言 :UI 窗口类程序

示例代码:/* Windows C UI 窗口界面*/#include<Windows.h>//消息回调函数声明LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR sz...

2020-03-28 14:20:48 7711 3

原创 C语言:动态DLL生成与调用

动态库 DLL:#include<Windows.h>//导出变量_declspec(dllexport) int num = 100;//导出函数_declspec(dllexport) void run(){ MessageBoxA(0, "TEST", "DLL", 0);}修改项目属性:注意字符集调用:#include<stdio.h&g...

2020-03-22 14:41:36 641

原创 C语言:网络通信 - UDP简单通信Dome

服务端代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<winsock.h> //网络通信#pragma comment(lib,"ws2_32.lib")#define MSGLEN 25...

2020-03-21 19:37:13 374

原创 C语言:字符串 -带括号的加减乘除运算

示例代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//去空格 下标方法void space(char* str);//去空格或任意字符 ,指针方法void eatspace(char* str, char ch);...

2020-03-21 00:22:44 6129

原创 C语言:网络通信 - TCP简单通信Dome

服务端:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<winsock.h> //网络通信#pragma comment(lib,"ws2_32.lib")void main(){ c...

2020-03-19 22:31:38 883

原创 C语言 :文件操作4 文本文件的遍历和批量修改

一:dos dir 指令遍历文件目录,输出到文件显示目录文件和子目录列表。如果在没有参数的情况下使用,则 dir 显示磁盘的卷标和序列号,后接磁盘上目录和文件的列表,包括它们的名称和最近修改的日期及时间。dir 可以显示文件的扩展名以及文件的字节大小。Dir 也显示列出的文件及目录的总数、累计大小和磁盘上保留的可用空间(以字节为单位)命令语法:dir [Drive:][Path][FileN...

2020-03-14 22:05:13 1371

原创 C语言 :文件操作3 文件的分割与合并

文件分割示意图:代码:#define _CRT_SECURE_NO_WARNINGS //去掉安全检查#include<stdlib.h>#include<stdio.h>#include<string.h>//源文件路径char path[100] = "G:\\软件包\\软件\\WPS2015.exe"; /* 获取(二进制)文...

2020-03-14 18:30:48 1366

原创 Oracle -复杂查询总结-1

一 表的复杂查询:在实际应用过程中需要执行复杂的数据统计,经常需要显示多张表的数据,进行联合查询获取结果。1:数据分组关键字:max,min,sum,avg,count。聚合函数,函数中可以是(字段)和(表达式)max, min, sum, avg, count。聚合函数,函数中可以是 (字段)和(表达式)max,min,sum,avg,count。聚合函数,函数中可以是(字段)和(表达式...

2020-03-07 22:12:16 516

原创 oracle 锁

锁的概念:锁是数据库用来控制共享资源并发访问的机制 锁用于保护正在被修改的数据 直到提交或回滚了事务,其他用户才可以更新或修改数据锁的优点:一致性:一次只允许一个用户修改 完整性:为所有用户提供正确的数据。如果一个用户进行了修改并保存,所作的修改将反应给所有用户 并行性:允许多个用户访问同一数据锁的类型:1 - 行级锁正在被修改的行进行锁定,2 - 表级锁...

2020-03-07 11:17:51 270

转载 Oracle 常见死锁发生的原因以及解决方法

参考:https://blog.csdn.net/fenyu8/article/details/53811686一.删除和更新之间引起的死锁造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖。这里列举一个对同一个资源的争抢造成死锁的实例。死锁现象的重现:1.在sql 窗口 执行:select * from TEST_TABLE t for update; – 加行级锁 并对内容进...

2020-03-06 21:46:16 1170

原创 C语言 :文件操作 -2 文件指针和文件分类读写

C语言获取文件大小:#define _CRT_SECURE_NO_WARNINGS //去掉安全检查#include<stdlib.h>#include<stdio.h>#include<string.h>char path1[100] = "C:\\Users\\whx\\Desktop\\test.txt"; //文本文件char pat...

2020-03-01 21:33:22 392

原创 C# 开发windows服务

Windows 服务应用程序介绍Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序。这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显示任何用户界面。这些功能使服务非常适合在服务器上使用,或者需要长时间运行的功能(不会影响在同一台计算机上工作的其他用户)的情况。还可以在与登录用户或默认计算机帐户...

2020-03-01 11:22:44 786

原创 C语言 :文件操作 -1 文本文件的打开关闭和复制

C语言 文件操作的方式:C 语言把所有设备都当作文件处理。C语言程序在操作文件的步骤:打开 --> 读写 --> 关闭。打开是获取文件结构,系统为文件分配缓存区的过程,不打开就不能对文件进行操作。关闭是释放缓存区和其它资源的过程,只代开不关闭系统资源就可能被耗尽。系统有三个标准设备文件,这三个无需打开和关闭:stdin:标准输入文件指针,系统分配为键盘。 stdout:标...

2020-02-29 22:45:02 799

原创 Oracle定时任务(2)-DBMS_SCHEDULER

DBMS_SCHEDULER:任务调度 :官方文档Oracle 10g之前,可以使用dbms_job来管理定时任务,0g之后,Oracle引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理。使用dbms_scheduler创建一个定时任务有两种形式:创建1个SCHEDULER来定义计划,1个PROGRA...

2020-02-23 14:20:00 2473

原创 oracle 定时任务

首先看一个 job 脚本:脚本1:variable jobno number;begindbms_job.submit(:jobno,'STU_IN_JOB;', sysdate, 'sysdate+1/24/60');commit;end;/脚本2:begin sys.dbms_job.submit(job => :job, ...

2020-02-16 11:35:47 893

原创 C语言: 多线程(3)-事件和互斥量

事件(信号)创建函数:CreateEventA函数:创建或打开一个命名或未命名的事件对象。要为对象指定访问掩码,请使用CreateEventEx函数。函数原型:HANDLE CreateEventA( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL ...

2020-01-13 23:00:17 1068

原创 C语言: 多线程(2)-线程的停止和创建

函数:_endthread() 和_endthreadex()_endthread是自动删除线程句柄,而_beginthreadex是需要在结束线程后手动关闭句柄。终止线程:_endthread终止由_beginthread创建的线程,并_endthreadex终止由_beginthreadex创建的线程。可以显式调用_endthread或_endthreadex以终止线...

2020-01-12 17:10:23 4772

原创 C语言: 多线程(1)-多线程函数调用

异步执行函数线程Dome调用MSVC CRT的函数_beginthread()或_beginthreadex()来创建线程。_beginthread 参数和返回值unsigned long _beginthread(void(_cdecl *start_address)(void *), //声明为void (*start_address)(void *)形式 ,一般指函数名称un...

2020-01-11 23:54:14 5909

原创 C语言: 链表 -- (环形双链表)

环形双链表示意图:Dome:#pragma once#include<stdio.h>#include<stdlib.h>/*节点数据结构*/typedef struct node{ int data;//值 struct node* pPer;//上一节点 struct node* pNext;//下一节点}NODE,*PNODE;...

2020-01-05 15:58:15 372

原创 C语言: 链式正向栈与链式反向栈

堆栈(stack): 后进先出(Last_In First_Out , LIFO)的数据模型。下面两个都是基于链表实现的栈数据模型链式正向栈 Dome/************************************************************FileName : linkstack.hAuthor : wang Version : v1....

2020-01-04 11:51:58 323

原创 C语言: 基于链表的内存管理Dome

基于单链表(也可以用数组)实现的程序内存管理,对内存的安全释放和开辟空间大小以及地址的管理和数据展示。头文件:mymemory.h#pragma once#include<stdio.h>#include<stdlib.h>/* 记录开辟内存*/void* mymalloc(size_t size);/* 记录释放内存*/void myf...

2020-01-03 22:22:23 343

原创 C语言:链表 -3(环形单链表)

环形单链表基于环形单链表的增删改查。源代码:/************************************************** 文件: circularLinked.h 环形单链表头文件 ----------------------------------------------- 函数: ... -----------------------------...

2020-01-01 22:06:07 244

命令模式.zip

C#设计模式之 -- 命令模式代码示例和应用Dome

2019-08-04

空空如也

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

TA关注的人

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