实现步骤
1.编写stack栈类,实现stack栈的各个功能(push,pop,getsize…)
2.输入一个字符串,将字符串逆序输出
3.将stack类模板化
Stack.h
#include<iostream>
using namespace std;
template<typename T>
class Stack {
private:
size_t size{ 0 };
T elements[100];
public:
Stack();
bool empty();
T peek();
T push(T value);
T pop();
int getSize();
T operator[](int value) {
return elements[value];
}
};
template<typename T>
Stack<T>::Stack() {
for (auto& i : elements) {
i = 0;
}
}
template<typename T>
bool Stack<T>::empty() {
return size == 0?true:false;
}
template<typename T>
T Stack<T>::peek() {
return elements(size - 1);
}
template<typename T>
T Stack<T>::push(T value) {
elements[size] = value;
size++;
return value;
}
template<typename T>
T Stack<T>::pop() {
T temp = elements[size - 1];
elements[size - 1] = 0;
size--;
return temp;
}
template<typename T>
int Stack<T>::getSize() {
return size;
}
Stack.cpp
#include"Stack.h"
int main() {
Stack<char>st1;
std::string s{ "hello,world" };
for (auto i : s) {
cout << i;
}
cout << endl;
for (auto i : s) {
st1.push(i);
}
while (st1.getSize() > 0) {
cout << st1.pop();
}
}