- 博客(8)
- 收藏
- 关注
原创 队列的实现
1.顺序实现循环队列#include<iostream>#include<cstdlib>#include<ctime>using namespace std;const int MAX = 20;class Myqueue{private: int Queue[MAX] = { 0 }; int front = 0; int rear = 0; int size = 0;public: void Inque(int n) { if (
2022-03-07 21:47:44 169
原创 中缀表达式转换后缀并求值
不能输入两位数,以后再改进#include<iostream>#include<string>using namespace std;template <typename T>struct Node{ T ch; Node<T>* next;};template <typename T>class Stack{private: Node<T>* top;public: Stack(): top(nul
2022-01-15 18:07:54 152
原创 C++ 队列的深度拷贝实现
重点在Copy#include<iostream>#include<string>using namespace std;const int LIMIT = 5;class Node{public: int num; Node* next;};class QUEUE{private: Node* head; Node* tail; int size;public: QUEUE() :head(nullptr), tail(nullptr), siz
2021-03-15 08:24:05 2568
原创 string类的简单实现
#include<iostream>#include<string>#include<cstring>#include<cstdlib>using namespace std;const int LIMIT = 100;class NewString{private: char* str; int len;public: NewString() :str(nullptr), len(0) {} NewString(const char
2021-03-15 02:28:38 121
原创 有关C++中类加法的两种方式
众所周知,C++允许使用操作符重载,从而使类与类、类与常量直接相加,简化写法。而操作符重载跟使用的顺序有关,并不是那么简单的,比如a是一个类,如果你只定义了成员操作符重载函数,则写成a+1没有问题,写成1+a就会报错了,这个问题有两种解决方式:1.使用类的 构造转换函数假设我们定义了一个Complex类class Complex{private: int rel;//实部 int img;//虚部public: Complex(int n):rel(n),img(0){}//构造转换函
2021-03-13 12:42:54 3178
原创 C++ 函数模板的 显式具体化,隐式\显式具体化小结
这两天读到C++ Primer Plus第八章函数探幽部分,发现函数模板这里有一点点绕,因此写篇稿做下小结:1.实例化我们知道,声明一个函数模板后:template<typename T>void Swap(T&, T&){ T temp; temp=a; a=b; b=temp;}在代码中并不会立刻生成函数,它只是一个用于生成函数定义的方案。如果定义两个int型变量a,bint a,b;则调用Swap(a,b)时才会生成这个函数的实例,此时生成的
2021-03-08 02:15:47 371
转载 [转载]C语言可变参数以及printf的实现
C语言可变参数以及printf的实现C 语言的变长参数在平时做开发时很少会在自己设计的接口中用到,但我们最常用的接口printf 就是使用的变长参数接口,在感受到 printf 强大的魅力的同时,是否想挖据一下到底printf 是如何实现的呢?这里我们一起来挖掘一下 C 语言变长参数的奥秘。=================================1、可变参数先考虑这样一个问题:如果我们不使用 C 标准库(libc)中提供的Facilities,我们自己是否可以实现拥有变长参数的函数呢?我们
2021-01-26 23:46:17 506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人