- 博客(25)
- 收藏
- 关注
原创 生产者消费者&队列&单例
这里写目录标题一级目录一级目录#include<iostream>#include<mutex>#include<condition_variable>#include<queue>#include<thread>#include<stack>#include<stdio.h>#include<vector>#include<unordered_map>#include<t
2021-03-29 19:33:01
171
原创 Hq 2_2
算法01背包求最大公共连续子数组之和01背包int maxvalue(int *W, int *V, int i, int j, int n) //i代表从i到i+1,到n;{ if (i == n) { return j >= W[i] ? V[i] : 0; } else { if (j < W[i]) return maxvalue(W, V, i + 1, j,n); else { return std::max(maxvalue(W, V,
2021-02-02 18:56:54
184
原创 Hq 1_31
分治策略全排列问题全排列&打家劫舍&最长公共子序列&快排全排列&打家劫舍&最长公共子序列&快排#include<iostream>#include<vector>#include<list>#include<stack>#include<assert.h>#include<queue>#include<algorithm>#include<stdlib
2021-01-31 18:24:22
140
原创 STL_vector源码注释
STLVectorVector#include<stdio.h>#include<stdlib.h>#include<new>#include<iostream>using namespace std;namespace yhp{// 异常// template <class _FI, class Size, class T > //填充函数,把数据填充到空间_FI uninitialized_fill_n (_
2021-01-21 16:01:16
110
原创 BinaryTree
二叉树的算法2一级目录二级目录三级目录真的很难,可我不敢放弃!!!!一级目录下面展示一些 内联代码片。//前序的非递归遍历void SktNodePiOrder(BtNode *ptr){ if (ptr == NULL) return; stack<BtNode*> s; s.push(ptr); while (!s.empty()) { ptr = s.top(); s.pop; cout << ptr->data << " ";
2021-01-21 13:52:00
231
1
原创 STL_list
STL_list源码注释一级目录一级目录#include <iostream>using namespace std;namespace yhp 名字空间域{ template<class Type> void Swap(Type& a, Type& b) // 交换函数 { Type c = a; a = b; b = c; } template <class
2021-01-18 18:11:37
64
原创 BinaryTree&分治&解题
二叉树&分治法&解题思路一级目录二级目录三级目录一级目录1:给定一个排序数组和一个目标{12,23,34,45,56}给个40;没有,插入,返回插入顺序,给23;有,返回下标;思路:我用STL建立数组,然后用vector中的sort()来进行快排,大概这里有个阈值,超过的话就是堆排,我用一个Find函数来查找元素val,查到就用insert(),没查找到我就用下标返回;2:贪吃的小明:小明的出差4天,七块奶糖;使用后序遍历和中序生成树;非递归实现;思路:宏观上前序第一次
2021-01-16 16:19:29
110
原创 设计模式
设计模式一级目录二级目录三级目录一级目录class A{private: A() { a = new A; };public: static A* getInstance() { return a; }private: static A *a;}; A* A ::a = NULL;int main(){ A::getInstance(); return 0;}#endif // 0//实现单例的步骤: //构造函数私有化; //增加
2021-01-13 14:30:30
64
原创 设计模式
工厂模式一级目录二级目录三级目录一级目录简单工厂模式class AbstractFruit{public: virtual void ShowName() = 0;};class Apple :public AbstractFruit{public: virtual void ShowName() { cout << "苹果。。。" << endl; }};class Banana :public AbstractFruit{public:
2021-01-08 18:20:40
72
原创 c++设计模式
设计模式一级目录二级目录三级目录四级目录关于c++设计模式,要考虑内存的回收;设计原则目的:高内聚,低耦合;设计原则:1.单一职责原则;2.开闭原则;3.里式转换原则;4.依赖倒转原则;5.接口隔离原则;6.合成复用原则;7.迪米特原则;一级目录开闭原则, 对扩展开放,对修改关闭,增加功能是增加代码来实现,而不是去修改源代码#include<iostream>#include<string>#include<vector>us
2021-01-07 20:15:35
81
原创 智能指针
智能指针一级目录二级目录三级目录一级目录为什么要用智能指针?在C++程序里,使用new关键字开辟的内存必须被手动delete掉,不然就会导致内存的泄漏,但是,当程序非常冗长,你能保证自己每一个手动开辟的内存块都释放了吗?在delete之前,倘若程序因为异常跳转后,你还能保证内存被释放吗?为了解决这种因为遗忘或者异常处理而导致内存泄漏的问题,我们就要用智能指针。智能指针运用了一种叫做RAII的技术,即利用对象生命周期来控制程序资源的技术,这中技术的思想就是在构建对象时获取我们资源的指针,接着控制对资源
2021-01-03 22:19:29
270
2
原创 顺序表&顺序栈&线性表的合并&循环链表
这里写目录标题一级目录二级目录三级目录一级目录顺序表#if 0#include<iostream>using namespace std;#define MAX_SIZE 100typedef int Status;typedef char ElemType;typedef struct{ float p; int e;}ElemType;typedef struct { ElemType *elem; int length;}SqList;S
2021-01-03 22:18:06
150
原创 my_vector
my_vector一级目录一级目录提醒:在继承中出现问题,后面需要重看代码#if 0#include<iostream>#include<new>#include<stdlib.h> #include<string.h>#include<string>using namespace std;/*template<class _TP>class Test{private: int value;p
2021-01-02 20:24:57
181
1
原创 链表&链栈&队列
数据结构线性存储一级目录二级目录三级目录一级目录链表:#if 0#include<iostream>using namespace std;typedef int Status;//typedef struct {// char num[8];// char name[8];// int score;//}ElemType;typedef int ElemType;typedef struct Lnode{ ElemType data; struct Lno
2021-01-02 13:47:19
263
原创 空指针&引用&KMP
文章目录一级目录二级目录三级目录一级目录nullter和NULL的区别:#if 0#include <iostream>using namespace std;//#define NULL((void*)0)//在c语言中,NULL通常被定义以上int *a = NULL;char *pc = NULL;//在c语言中,把空指针赋给int和char时,发生了强制类型转换//因为c++时强制型语言,void*不能隐式转换为其他类型的指针所以编译器对头文件做了想i也能够的处理
2021-01-02 13:19:50
346
原创 整理STL初识&Vector
vector&STL一级目录二级目录三级目录一级目录STL:标准模板库;广义分为;容器,算法,迭代器;容器和算法之间通过迭代器进行连接;c++面向对象和泛型编程思想,目的是复用性的提升;STL六大组件:容器:各种数据结构,如vector,list,deque,set,map;算法:各种常用算法,如sort,copy;- 迭代器:容器和算法之间的胶合剂;****(面试可能会问到)仿函数:算法的某种策略;适配器:修饰容器或仿函数或迭代器接口的东西;空间配置器:
2021-01-01 19:56:19
102
原创 定位new及笔记的整理
定位new的一些问题一级目录二级目录三级目录一级目录下面展示一些 内联代码片。#if 0#include<vector>#include<typeinfo>#include<iostream>#include<new>using namespace std;template<class Type>class SeqStack{private: Type *data; size_t maxsize; int p
2021-01-01 15:47:11
110
原创 AC源码
字符串算法一级目录一级目录下面展示一些 内联代码片。关于aoti函数的实现:1:空白符2:正号和负号3:关于进制:4:溢出的问题;用到库函数,进制有一些问题,需要再考虑一下;#include<iostream>#include<ctype.h>using namespace std;int my_atoi(const char *str){ unsigned int sum = 0; unsigned int maxval; if (str ==
2021-01-01 15:12:14
307
1
原创 数据结构基础概念复习
算法的特性:有穷性:一个算法总是在执行有穷步后结束,且每一步都在有穷时间内完成;确定性:算法中的每一条指令必须有确切的含义,没有二义性,在任何条件下,只有唯一的一条执行路径,即对于相同的输入稚嫩那个得到相同的输出;可行性:算法是可执行的;输入: 一个算法有零个或多个输入;输出:一个算法有一个或多个输出;算法设计要求:正确性;可读性;健壮性;高效性;算法的时间效率和空间效率;两者往往是由冲突的;链表:带头结点和不带头节点;带头结点的好处:便于首元节点的处理;首元节点的地址.
2020-12-15 16:38:54
142
1
原创 c++复习3
this指针来源:对象不含有,对象调动成员函数,进入到成员函数体时会有this指针;成员函数调动完毕,this指针释放;传递this指针:1:扫描数据成元;2:扫描成员函数的声明;3:改写成员函数形参列表,类名*const this;4:对函数体里的数据成员加上this指针;this指针不是push压进去的;同类型的对象调动方法区分 this指针;inline函数会把函数执行体直接拷贝,不存在现场保护和恢复,不需要调用,空间变大;inline函数有循环,递归,不能使用inline..
2020-11-23 18:48:27
114
原创 c++复习
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变下面展示一些 内联代码片。#include<iostream>using namespace std;class Animal {//public:// virtual void speak()// {// cout << "动物在说话" << endl;// }pu
2020-11-21 10:53:59
148
原创 c++复习
浅拷贝:简单的复制拷贝操作;带来的问题是堆区的数据重复释放;浅拷贝的问题要用一个深拷贝来解决;深拷贝:在堆区重新申请空间,进行拷贝工作;初始化:...
2020-11-18 11:00:14
57
原创 c++复习
project2中举例子;构造函数和析构函数:作用于对象的初始化和清理;这两个函数都会自动被编译器调用,完成对象的初始化和清理工作;对象的初始化和清理工作是编译器强制我们要做的事情,因此我们不提供过构造和析构函数,编译器会提供,编译器提供的构造和析构都是空实现;!构造函数:主要作用于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用;!析构函数:主要作用于对象销毁前系统自动调用,执行一些清理工作;构造函数语法:类名(){}1:构造函数没有返回值也不用写void;2:函数名称
2020-11-16 18:48:42
118
原创 C复习
二位数组:二维数组是按行顺序存放;二位数组是数组的数组;数组名字是数组首地址常量;a[i]表示i行一维数组的首地址;a+i表示ihang首地址;a[i]+j=》&a[i][j;用一维数组方式引用二维数组元素;数组下标必须在指定范围内使用;rand产生随机数;srand为随机数种子,在需要修改随机数种子,使每次产生的随机数不同的时候会使用他;函数参数的传递方式:不管是值传递还是引用传递,传递给函数的都是变量的副本;默认值传递类型:基本数据;结构体;共用体;枚举;变量直接存储
2020-11-14 11:12:13
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人