c++day6

尝试使用模板类,实现顺序栈。

cpp 复制代码
#include <iostream>
#define MAX 8
using namespace std;
typedef struct{
    int a;
    int b;
}test_t;

template <typename T>
class Stack
{
private:
    T *data;
    int top;
public:
    Stack() :data(nullptr),top(-1){}
    //创建顺序栈
    int create_stack();
    //出栈
    int pop_stack();
    //入栈
    int push_stack(T data);
    //遍历
    int show_stack();
    //释放顺序表
    int free_stack();
};
template <typename T>
int Stack<T>::create_stack(){
    this->data=new T[MAX];
    this->top=-1;
    return 0;
}
template <typename T>
int Stack<T>::pop_stack(){
    if(this->data==nullptr||this->top==-1){
        cout<<"入参错误"<<endl;
        return -1;
    }
    cout<<this->data[this->top]<<endl;
    this->top--;
    return 0;
}
template <typename T>
int Stack<T>::push_stack(T data){
    if(this->data==nullptr){
        cout<<"入参错误"<<endl;
        return -1;
    }
    top++;
    this->data[this->top]=data;
    return 0;
}
void show(test_t data){
    cout<<"a="<<data.a<<" "<<"b="<<data.b<<endl;
}
template <typename T>
int Stack<T>::show_stack(){
    if(this->data==nullptr){
        cout<<"入参错误"<<endl;
        return -1;
    }
    for(int i=this->top;i>=0;i--){
        show(*(data+i));
    }
    return 0;
}
template <typename T>
int Stack<T>::free_stack(){
    if(this->data==nullptr){
        cout<<"入参错误"<<endl;
        return -1;
    }
    delete []this->data;
    return 0;
}
int main()
{

    Stack<test_t> s;
    test_t t1={10,20};
    test_t t2={30,40};
    test_t t3={50,60};
    s.create_stack();
    s.push_stack(t1);
    s.push_stack(t2);
    s.push_stack(t3);
    s.show_stack();
//    s.pop_stack();
    s.free_stack();
    return 0;
}

异常处理

cpp 复制代码
#include <iostream>

using namespace std;
int fun(int a,int b){
    if(0==b){
        throw int(1);
    }
    return a/b;
}

int main()
{
    try {
        fun(2,0);
    } catch (int a) {
        if(a==1){
            cout<<"除数为0"<<endl;
        }
    }
    cout<<"hello"<<endl;
    return 0;
}
相关推荐
WWTYYDS_66617 分钟前
JsonCpp超详细使用教程
c++
Joey_friends34 分钟前
指纹authenticate流程图
android·java·c++
小小晓.38 分钟前
C++小白记:C风格字符串和数组用法
c语言·开发语言·c++
cpp_25011 小时前
P1540 [NOIP 2010 提高组] 机器翻译
数据结构·c++·算法·队列·noip·洛谷题解
咕白m6252 小时前
通过 C++ 写入数据到 Excel 文档
c++·后端
qz5zwangzihan12 小时前
题解:Atcoder Beginner Contest abc467 F - Email Scheduling Optimization
c++·贪心·atcoder·平衡树·abc467·abc467_f·fhq-treap
郝学胜-神的一滴3 小时前
中级OpenGL教程 023:Assimp模型加载全解——从源码到架构的骈文探秘
c++·unity·游戏引擎·cmake·unreal engine·opengl
星恒随风3 小时前
C++ STL 详解:list 的使用、迭代器失效、模拟实现与 vector 对比
开发语言·数据结构·c++·笔记·学习·list
牢姐与蒯3 小时前
c++之异常
开发语言·c++·c++11
此生决int3 小时前
深入理解C++系列(02)——类和对象(上)
开发语言·c++