C++ 2024-4-2 作业

 

1.模板类实现顺序栈

#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类型的字符数组,实现对数组越界的抛出异常并处理

#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;
}

 

 

相关推荐

  1. 作业2024/2/2

    2024-04-04 05:54:04       33 阅读
  2. 2024.4.8作业

    2024-04-04 05:54:04       11 阅读
  3. 2024.4.9作业

    2024-04-04 05:54:04       13 阅读
  4. 2024.4.19作业

    2024-04-04 05:54:04       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 05:54:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 05:54:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 05:54:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 05:54:04       20 阅读

热门阅读

  1. HJ11 数字颠倒

    2024-04-04 05:54:04       13 阅读
  2. css 固定表头

    2024-04-04 05:54:04       13 阅读
  3. Linux 内核的构建块:深入探索 C 结构体的应用

    2024-04-04 05:54:04       16 阅读
  4. 设计模式(17):中介者模式

    2024-04-04 05:54:04       11 阅读
  5. 【图像处理小知识】PIL Image 中的P和L模式

    2024-04-04 05:54:04       19 阅读
  6. Ubuntu终端多窗口分屏Terminator优化

    2024-04-04 05:54:04       12 阅读
  7. Centos7、ubuntu22.04.3安装php7.4,mysql8.0

    2024-04-04 05:54:04       26 阅读
  8. 中文bert预训练

    2024-04-04 05:54:04       13 阅读