对于STL中的简单的数据结构还是应该手写。
下面的手写的栈
struct Stack{
int value[100010];
int top=-1;
void push(int x){ value[++top]=x;}
void pop(){ if(top>=0) top--;}
int size(){ //因为top指向当前栈顶元素,元素都是从0开始存的,所以实际大小应为top+1
return top+1;
}
int front(){ //访问栈顶元素
return value[top];
}
bool empty(){
return top>=0 ? 0:1;
}
};
手写的队列
struct Queue{
int front=-1,rear=-1;//开始是队头和队尾都初始化为-1
int value[100010];//定义数组用来存放值
void push(int x){ value[++rear]=x; } //如果插入的话队尾向后移一个
void pop(){ front++;} //如果出队的话,队头向后移动一个
int get_front(){ return value[front+1];} //获取队头元素
int get_rear(){ return value[rear];} //获取队尾元素
int size(){ return rear-front;} //获取队中元素个数
bool empty(){ //判断是否为空
if(front==rear) return true;
else return false;
}
};
STL的应用