自己写的简单stl
stack (仅仅知识实现了简单的功能)
#include<iostream>
using namespace std;
template<class T>
class stack{
public:
stack(){
ptrtop = -1;
}
void push(T x){
arr[++ptrtop] = x;
}
void pop(){
if(ptrtop != -1){
ptrtop--;
}
}
bool empty(){
if(ptrtop == -1){
return 1;
}
else return 0;
}
int size(){
return ptrtop + 1;
}
T top(){
if(ptrtop != -1){
return arr[ptrtop];
}
else return -1;
}
private:
int ptrtop;
T arr[100000];
};
int main(){
stack<int> s;
for(int i=1;i<=10;i++){
s.push(i);
}
while(!s.empty()){
cout << s.top() <<endl;
s.pop();
}
}
队列queue
#include<iostream>
using namespace std;
#include<string>
struct node{
string name;
int age;
};
template<class T>
class queue{
public:
queue(){
head = -1;
rear = 0;
}
void push(T x){
arr[++head] = x;
}
void pop(){
if(head -rear == -1){
return ;
}
rear ++;
}
bool empty(){
if(head - rear == -1){
return 1;
}
return 0;
}
T front(){
return arr[rear];
}
private:
int rear;
int head;
T arr[100000]; // 内存表示不值钱
};
int main(){
queue<node>q;
q.push(p1);
q.push(p2);
while(!q.empty()){
cout << q.front().name << " " << q.front().age <<endl;
q.pop();
}
}