⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack.h

📁 3D游戏开发需要用到BSP树来经行场景渲染的管理。本代码包含完整的BSP及文件生成实现
💻 H
字号:
#pragma once

#include <queue>
#include "vector.h"

template <class T, class STORAGE = CVector<T> >
class CStack {
public:
	void	Push(T* elem);
	T*		PushPeek();
	T*		PeekTop();
	T*		Pop();
	void	Clear();

	T&		operator[](int i);
	int		GetNum();
private:
	STORAGE data;
};

template <class T, class S>
inline void CStack<T, S>::Push(T* elem) {
	T& e = data.TailAlloc();
	e = *elem;
}

template <class T, class S>
inline T* CStack<T, S>::PushPeek() {
	T& e = data.TailAlloc();
	return &e;
}

template <class T, class S>
inline T* CStack<T, S>::PeekTop() {
	return &data[data.GetNum() - 1];
}

template <class T, class S>
inline T* CStack<T, S>::Pop() {
	data.SetNum(data.GetNum() - 1);
	return &data[data.GetNum()];
}

template <class T, class S>
inline T& CStack<T, S>::operator[](int i) {
	return data[i];
}

template <class T, class S>
inline int CStack<T, S>::GetNum() {
	return data.GetNum();
}

template <class T, class S>
inline void CStack<T, S>::Clear() {
	data.SetNum(0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -