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;
}
相关推荐
思想觉悟10 小时前
SEAndroid实战
android·linux·c++
AIFQuant10 小时前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发
echome88810 小时前
JavaScript async/await 错误处理:别让 Promise 静默失败
开发语言·前端·javascript·promise
运维行者_10 小时前
供应链安全成最大风险源,企业如何构建可控的运维体系?
运维·开发语言·网络·数据库·安全·云计算·流量监控
驭渊的小故事10 小时前
LeetCode 算法题解:滑动窗口与数组合并的实战应用
算法·leetcode·职场和发展
.YM.Z10 小时前
优选算法——【双指针算法2】C++实现
开发语言·c++·算法
逆向编程10 小时前
MATLAB高级数据结构:cell、struct与table深度应用
开发语言·数据结构·matlab
思想觉悟10 小时前
Aosp开发磨刀石之ADB速查
android·c++
小此方10 小时前
C++ 工程组件与基础设施(三)详解RPC服务的概念与安装,图片介绍Brpc服务器和客户端的搭建过程
服务器·c++·rpc
努力努力再努力wz10 小时前
【Lua入门系列】从 Table 到元表与元方法:一文理解 Lua 的行为扩展机制
开发语言·junit·lua