学习使用,没大规模测试,通用改模板
#include <memory.h>#include <stdexcept>
#include <assert.h>
class CArrary
{
public:
//迭代器类,保护成员
class iterator
{
public:
iterator& operator++()
{
assert(m_data != m_end);
m_data++;
return *this;
}
iterator& operator--()
{
assert(m_data != m_begin);
m_data--;
return *this;
}
iterator operator++(int)
{
assert(m_data != m_end);
//------注意,临时变量保存,在构造
char* temp = m_data;
m_data++;
return iterator(temp, m_begin, m_end);
}
iterator operator--(int)
{
assert(m_data != m_begin);
//------注意,临时变量保存,在构造
char* temp = m_data;
m_data--;
return iterator(temp, m_begin, m_end);
}
char& operator*()
{
return *m_data;
}
bool operator==(const iterator& itr)
{
return m_data == itr.m_data;
}
bool operator!=(const iterator& itr)
{
return m_data != itr.m_data;
}
private: