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;
}
相关推荐
Mcworld8575 分钟前
整数分解JAVA
java·开发语言
请你喝好果汁6418 分钟前
python_竞态条件
开发语言·python
正在走向自律10 分钟前
Python 数据分析与可视化:开启数据洞察之旅(5/10)
开发语言·人工智能·python·数据挖掘·数据分析
吃个早饭11 分钟前
2025年第十六届蓝桥杯大赛软件赛C/C++大学B组题解
c语言·c++·蓝桥杯
fancy16616624 分钟前
力扣top100 矩阵置零
人工智能·算法·矩阵
dudly33 分钟前
Python 字典键 “三变一” 之谜
开发语言·python
元亓亓亓1 小时前
LeetCode热题100--240.搜索二维矩阵--中等
算法·leetcode·矩阵
饕餮争锋1 小时前
org.slf4j.MDC介绍-笔记
java·开发语言·笔记
半部论语1 小时前
jdk多版本切换,通过 maven 指定编译jdk版本不生效,解决思路
java·开发语言·maven·intellij-idea
阿沁QWQ1 小时前
单例模式的两种设计
开发语言·c++·单例模式