自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冷月

新手上路,求带飞

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

原创 电脑日常维护-软件部分

电脑日常维护-软件部分Windows系统开机启动,减少开机启动可以是电脑开机速度加快,部分电脑配置较低,开机启动过多软件,会是电脑一直运行在高负载状态下,系统的各种操作都会非常卡顿,建议除了台内上网认证inod客户端禁止所有其他程序。 查看和修改开机启动Window10 的任务管理器中可以查看和修改,建议不要使用安全管家等软件优化,因为它会列出一些系统进程,如磁盘自动清理和共享流媒体等win系统的自启动进程,后续可能会影响一些如共享、磁盘自动整理功能的开启。电脑硬盘保持C盘(或系统安.

2021-04-30 17:15:27 446 2

原创 排序

#include <iostream>#include <stack>#include <cassert>using namespace std;void PrintArr(int arr[], int size){ for (int i = 0; i < size; i++) cout << arr[i] << ...

2018-03-23 23:54:59 180

原创 二叉树

#include <iostream>#include <cassert>#include <stack>#include <queue>using namespace std;template<class T>struct BinaryTreeNode//二叉树的节点{ BinaryTreeNode(const T v...

2018-03-23 23:43:12 145

原创 栈 队列

栈顺序栈共享栈链式栈队列顺序队列链式队列

2017-08-24 00:23:39 474

原创 括号匹配检测 逆波兰表达式

括号匹配的检测逆波兰表达式

2017-08-23 21:02:16 434

原创 迷宫(回溯,递归)

回溯法递归法

2017-08-23 20:44:08 654

原创 C++循环引用和仿函数的使用

循环引用仿函数的使用:定制删除器,多重冒泡排序

2017-08-18 01:13:29 616

原创 C++智能指针

智能指针是用模板实现,创建对象后,对象管理了资源,然后通过析构函数释放掉该资源,以防内存泄漏。auto_ptr(空间管理权限的转移,永远只有一个指针指向动态开辟的空间)#include <iostream>using namespace std;template<class T>class AutoPtr{public: AutoPtr(T* p = NULL) :_

2017-08-17 18:16:39 228

转载 只能在堆或栈上创建对象

只能在堆上创建对象只能在栈上创建对象类不能继承

2017-08-17 11:34:50 239

原创 头文件在.c/.cpp中引用和.h文件引用

头文件在.c/.cpp中引用和.h文件引用a.h头文件中的变量.cpp文件函数的相互调用

2017-08-16 23:56:20 22248

原创 模板的分离编译

给出模板类,但未实例化Sep_Compile.h#include <iostream>using namespace std;template<class T>class Test{public: Test(); T _t;};Sep_Compile.cpp#include "Sep_Compile.h"template<class T>Test<T>::Test()

2017-08-16 22:29:47 230

原创 模拟实现容器适配器 stack queue

模拟实现stack(只能栈顶操作数据,后进先出)模拟实现queue(只能队列头部操作数据,先进先出)

2017-08-15 10:23:16 214

原创 C++ 类型萃取

类型萃取(图比代码思路清晰)#include <iostream>using namespace std;//结构体定义不同的标签flag是为了区分 内置/自定义类型struct TrueType{};struct FalseType{};template<class T>struct TypeTraits{ typedef FalseType IsPODType;};//

2017-08-03 11:27:30 276

原创 C++ 模板实现Vector和双向链表

模板实现Vector#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>#include <assert.h>using namespace std;template<class T>class Vector{public: Vector() :_pData(new T[3]) ,_size(0)

2017-08-03 10:16:08 1046

原创 C++ 多态

多态:具有多种形式或形态的情况。分为静态多态、动态多态。静态多态:编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推 断出要调用那个函数,如果有对应的函数就调用该函数,否则出现编译错误。包含函数重载、泛型编程。 动态多态:动态绑定:在程序执行期间(非编译期)判断所引用对象的实际类型,根据其实际类型调用相应的方法。必须是虚函数,然后通过基类类型的引用或者指针调用虚函数

2017-07-27 17:40:37 235

原创 C++菱形继承和菱形虚拟继承

单继承&多继承&菱形继承单继承:一个子类只有一个直接父类时称这个继承关系为单继承。多继承:一个子类有两个或以上直接父类时称这个继承关系为多继承菱形继承(钻石继承)存在二义性和数据冗余问题。#include using namespace std;class A{public: int _a;};class B : public A{publ

2017-07-25 22:52:17 320

原创 C++ 继承

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承关系&访问限定符继承方式与成员访问权限测试代码#include using namespace std;class Person{public: int _age;protected: int _weight;p

2017-07-25 12:17:20 216

转载 C++重载运算符的规则详解

(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。例如,有人觉得BASIC中用“* *”作为幂运算符很方便,也想在C++中将“* *”定义为幂运算符,用“3* *5”表示35,这是不行的。(2)C++允许重载的运算符C++中绝大部分运算符都是可以被重载的。不能重载的运算符只有5个:.             (成员访问运算符).* 

2017-07-25 09:19:25 1418 1

原创 C++双向链表

#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>#include <assert.h>using namespace std;typedef int DataType;struct Node{ Node(const DataType& data) :_pNext(NULL) ,_pPre(NULL

2017-07-21 14:57:10 234

原创 C++实现顺序表和单链表

#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>using namespace std;class Date{public: Date() { cout<<"Date()"<<endl; } Date(const Date& d) { cout<<"Date(cons

2017-07-20 15:34:43 343

转载 调用约定

在windows平台上的C++编程中经常会看到一些__stdcall, __cdecl, WINAPI, CALLBACK等等关键字在函数前面,在.NET中还有__clrcall, __thiscall等关键字,有时加不加它们都可以,但是有时必须加上,不然编译不过。本文要讨论的就是这些关键字:调用约定(Calling Convention),有时也叫做“函数调用约定”或者“调用规范”。本文采用MS

2017-07-17 15:08:18 499

原创 C++ 引用计数写时拷贝

写时拷贝技术原理  写时拷贝技术是通过"引用计数"实现的,在分配空间的时候多分配4个字节,用来记录有多少个指针指向块空间,当有新的指针指向这块空间时,引用计数加一,当要释放这块空间时,引用计数减一,直到引用计数减为0时才真的释放掉这块空间。当有的指针要改变这块空间的值时,再为这个指针重新分配自己的空间(旧的空间的引用计数减一,新分配的空间引用计数加一)。写法一(有缺陷)#d

2017-07-14 23:51:05 263

原创 C++ String的增删查改

#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;class String{public: String(char* str = "") :_str(new char[strlen(str)+1]) ,_size(strlen(str)) ,_capacity(strlen(str)) { s

2017-07-14 23:45:13 426

原创 C++深浅拷贝

简单赋值浅拷贝(只赋值拷贝,不重新分配空间)#include #include using namespace std;class String{public: String(char* str = "") :_str(str) {} String(const String& str) :_str(str._str) {} String& operator =

2017-07-08 23:47:00 199

原创 C/C++动态内存管理

C语言动态内存管理(malloc/calloc/realloc/free) int* p1 = (int*)malloc(sizeof(int));//malloc返回值类型为void* int* p2 = (int*)calloc(1, sizeof(int));//动态分配并初始化为0 int* p3 = (int*)realloc(p1, sizeof(int)*2);//当p1

2017-07-08 00:28:26 346

原创 构造拷贝构造的N种调用情况

#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;class Date{public: Date() { cout"Date()"<<endl; } Date(const Date& d) { cout"Date(const Date& d

2017-07-07 20:42:09 366 1

原创 C++ 日期计算器

#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;class Date{public: Date(int year = 1900,int month = 1, int day = 1) :_year(year) ,_month(month) ,_day(day) {} //拷贝构造系统默认生成

2017-07-02 07:07:35 667

原创 C++ Complex复数类

#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;class Complex{public: Complex(double real = 0, double image = 0) :_real(real) ,_image(image) {} Complex(const Complex& d)

2017-07-01 07:14:02 564

原创 C++类和对象--默认成员函数

类(class/struct):数据(成员变量);程序(成员函数)。访问限定符:public(公有),protected(保护),private(私有)。特点:1. public成员可从类外部直接访问,private/protected成员不能从类外部直接访问。2. 每个限定符在类体中可使用多次,它的作用域是从该限定符出现开始到下一个限定符之前或类体结束前。

2017-06-29 21:03:04 378

原创 c++入门基础知识

命名空间:namespace,即名字空间,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。使用“using namespace”可以使得后面不需要每次指定名字空间1)名字空间除了系统定义的名字空间之外,还可以自己定义,定义名字空间用关键字“namespace”,使用名字空间时用符号“::”指定。2)不指定名字空间的变量

2017-06-21 10:41:57 282

原创 linux之信号量

什么是信号量信号量的本质是一种数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。当请求一个使用信号量来表示的资源时,进程需要先读取信号量的值来判断资源是否可用。大于0,资源可以请求,等于0,无资源可用,进程会进入睡眠状态直至资源可用。 当进程不再使用一个信号

2017-06-18 15:30:03 279

原创 C语言实现单链表面试题--进阶

判断单链表是否带环?若带环,求环的入口点ListNode* judge_band(ListNode *pList)//判断单链表是否带环?若带环,求环的入口点?{ ListNode *fast = pList; ListNode *slow = pList; while((fast->next != NULL) && (fast->next->next != NULL)) {

2017-06-16 20:54:39 365

原创 IPC之共享内存

共享内存共享内存(shared memory)是进程间通信中最简单的方式之一。共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。内存模型要使用一块共享内存,进程必须首先分配它。随后需要访问这个共享内存块的每一个进程都必须将这个共享内存绑定到

2017-06-15 11:45:08 318

原创 linux下的简易进度条

# include# includeint main(){ char tar[102]; int i = 0; tar[0] = 0; const char *lable = "|/-\|"; while(i <= 100) { printf("[%-100s][%d%%][%c]\r",tar,i,lable[i%4]

2017-06-14 12:17:59 253

原创 在旋转之后的已排序数组中查找一个数字

图示说明函数实现#include int main(){ int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; int len = sizeof(arr)/sizeof(arr[0]); int i = 0; int j = 0; for(i=0; i<len-1; i++) { for(j=0; j<len-i-1; j++

2017-06-14 10:21:32 236

原创 可变参数列表

可变参数列表源码typedef char* va_list;#define __INTSIZEOF(n) ((sizeof(n) + sizeof(int) - 1) &~ (sizeof(int) - 1))#define va_start(ap, v) (ap = (va_list)&v + _INTSIZEOF(v))#define va_arg(ag,t)

2017-06-14 10:01:25 236

原创 字符操作函数的模拟实现

实现strcpychar *my_strcpy(char *dest, const char *src){ char *ret = dest; assert(dest != NULL); assert(src != NULL); while(*dest++ = *src++) { ; } return ret;}实现strcatchar *my_strcat(ch

2017-06-14 09:44:54 263

原创 C语言实现单链表面试题--基础篇

void Print_TailToHead(ListNode *pList)//从尾到头打印{ if(!pList) { printf("NULL"); return; } Print_TailToHead(pList->next); printf("->%d", pList->data);}void Erase_Notail(ListNode *pos)//删除一个无

2017-06-12 17:46:37 695

原创 单链表(c语言实现)

List.h#pragma once#include #include #include typedef int DataType;typedef struct ListNode{ DataType data; struct ListNode *next;}ListNode;void PrintList(ListNode *pList);//从头到尾打印void P

2017-06-09 13:11:03 434

原创 顺序表(动态)

SeqList.h#pragma once#include #include #include #include #define DEFAULT_SZ 10#define DEFAULT_INC 10typedef int DataType;typedef struct SeqList{ DataType *pData;//指向数据的存储位置 int sz;//有

2017-05-31 13:15:13 286

空空如也

空空如也

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

TA关注的人

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