adpmvector
//////////////////////////////////////////////////////////////////////////
template<class _Tp>
class adpmvector : protected vector<_Tp>
{
public:
typedef _Tp value_type;
typedef vector<_Tp>::iterator iterator;
explicit adpmvector() {}
~adpmvector()
{
clear();
}
void clear()
{
vector<_Tp>::iterator itx = vector<_Tp>::begin();
while( vector<_Tp>::end()!=itx )
delete *itx++;
vector<_Tp>::clear();
}
iterator begin()
{
return vector<_Tp>::begin();
}
iterator end()
{
return vector<_Tp>::end();
}
bool empty() const
{
return vector<_Tp>::empty();
}
void push_back(const _Tp& __x)
{
vector<_Tp>::push_back(__x);
}
size_type size() const
{
return vector<_Tp>::size();
}
iterator erase(iterator __position)
{
return vector<_Tp>::erase(__position);
}
};