📄 node.h
字号:
#ifndef _NODE_H_
#define _NODE_H_
#include <math.h>
#include <vector>
using namespace std;
///////////////////////////////////////////////////////////////////////////////////////////
//结点链表模板
template<class T>
class NodeList
{
public:
NodeList(){};
~NodeList(){m_pNodeList.clear();};
public:
void PushNode(T pNode)
{
m_pNodeList.push_back(pNode);
}
T PopNode()
{
T p=(*m_pNodeList.back());
m_pNodeList.pop_back();
return p;
}
void RemoveNode(T pNode,bool bFree=false)
{
vector<T>::iterator iter;
for(iter=m_pNodeList.begin();iter!=m_pNodeList.end();iter++)
{
if(*iter==pNode)
{
m_pNodeList.erase(iter);
break;
}
}
if(bFree) delete pNode;
}
void RemoveAllNode(bool bFree=false)
{
if(bFree)
{
vector<T>::iterator iter;
for(iter=m_pNodeList.begin();iter!=m_pNodeList.end();iter++)
delete (T*)(*iter);
}
m_pNodeList.clear();
}
T GetNode(long i) const
{
return (T)(m_pNodeList.at(i));
}
long GetNodeCount()
{
return (long)m_pNodeList.size();
}
void ReserveNode(long size=0)
{
if(size==0) size=(long)m_pNodeList.size();
m_pNodeList.reserve(size);
}
private:
vector<T> m_pNodeList;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -