C++ 2024-4-2 作业

1.模板类实现顺序栈

cpp 复制代码
#include <iostream>
#define MAX 8
using namespace std;
template<typename T>
class stack
{
    T data[MAX];
    int top;
public:
    stack():top(-1){}
    bool empty_stack();
    bool full_stack();
    void push_stack(T data);
    void pop_stack();
    void show();
};

template<typename T>
bool stack<T>::empty_stack()
{
    return top == -1;
}

template<typename T>
bool stack<T>::full_stack()
{
    return top == MAX-1;
}

template<typename T>
void stack<T>::push_stack(T data)
{
    if(full_stack())
    {
        return;
    }
    top++;
    this->data[top] = data;
    return;
}

template<typename T>
void stack<T>::pop_stack()
{
    if(empty_stack())
    {
        cout<<"栈为空"<<endl;
        return;
    }
    cout<<"出栈的元素为"<<data[top]<<endl;
    top--;
    return;
}

template<typename T>
void stack<T>::show()
{
    if(empty_stack())
    {
        cout<<"栈为空"<<endl;
        return;
    }
    for(int i=0;i<=top;i++)
    {
        cout<<data[i];
    }
    cout<<endl;
}

int main()
{
    stack<int>s1;
    s1.push_stack(1);
    s1.push_stack(2);
    s1.push_stack(3);
    s1.push_stack(4);
    s1.push_stack(5);
    s1.push_stack(6);
    s1.push_stack(7);
    s1.push_stack(8);
    s1.show();
    s1.pop_stack();
    s1.show();
    cout<<s1.full_stack()<<endl;
    return 0;
}

2. char类型的字符数组,实现对数组越界的抛出异常并处理

cpp 复制代码
#include <iostream>
#include <cstring>
using namespace std;
void arr_size(const char *p,int size)
{
    int len = strlen(p);//5
    if(size>=len)
    {
        throw int(0);
    }
}
int main()
{
    char arr[6] = "hello";
    int size = 4;
    int size2 = 8;
    try
    {
        arr_size(arr,size);

    } catch (int ret)
    {
        if(ret==0)
        {
            cout<<"数组越界"<<endl;
        }
    }

    try
    {
        arr_size(arr,size2);

    } catch (int ret)
    {
        if(ret==0)
        {
            cout<<"数组越界"<<endl;
        }
    }
    cout<<arr[size]<<endl;
    cout<<arr[size2]<<endl;

    return 0;
}
相关推荐
浪九天2 分钟前
面向高质量视频生成的扩散模型方法-算法、架构与实现【附核心代码】
python·深度学习·算法·机器学习·自然语言处理·数据挖掘·音视频
Vitalia2 分钟前
⭐算法OJ⭐全排列【回溯】(C++实现)Permutations II
数据结构·c++·算法
白羊不吃白菜5 分钟前
PAT乙级(1091 N-自守数)C语言解析
c语言·开发语言
Doopny@9 分钟前
计算星期几(信息学奥赛一本通-1083)
数据结构·算法
xinxiangwangzhi_12 分钟前
多视图几何--恢复相机位姿/内参的几种方法
图像处理·算法·计算机视觉
我的运维人生29 分钟前
从零开始:使用 Python 实现机器学习的基础与实践
开发语言·python·机器学习
2301_7891695441 分钟前
JSON.parse(JSON.stringify())深拷贝不会复制函数
开发语言·前端·javascript
恋恋风辰43 分钟前
QT系列教程(17) MVC结构之Model模型介绍
开发语言·qt·mvc
lisanndesu1 小时前
贪心算法--
算法·贪心算法
巷9551 小时前
机器学习篇——决策树基础
算法·决策树·机器学习