List 是标准类库中的一个类,可以简单视之为双向链表,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一,除此之外还有vector、set、map、…等等。
我们可以使用数组实现list。
这里我只实现int类型的list,其他类型可以使用模板实现。
这是list的方法
#include<iostream>
using namespace std;
typedef int T;
class ArrayList2 {
public:
ArrayList2();//构造空线性表
ArrayList2(int n);//构造长度(即size)为n的线性表
~ArrayList2();//析构函数
int find(T &x) const;//如果存在,则返回第一次出现的x的位置,否则返回-1。
void push_back(const T&x); //将x放在最后一项
void insert(int position,const T&x);
//如果0 = <position <= size(),则将x插入到位置位置。
//否则,动作为空。
ArrayList2(const ArrayList2& c);//拷贝构造函数
const ArrayList2& operator =(ArrayList2& c);//重载=符号
int size()const;//返回线性表中元素个数
int capacity() const; //返回数组的容量
bool full()const; //如果表满,返回true,否则,返回false。
bool empty()const{
return count==0;
}//如果表空,返回true,否则,返回false。
void clear();//将表置为空表
void traverse(void (* v