顺序存储线性表的分析
问题:
长度相同的两个SeqList,插入和删除操作的平均耗时是否相同?
下面的代码正确吗?为什么?
2.
导致上面出现问题的原因就是,拷贝构造函数和赋值操作,因此我们可以这样解决:
对于容器类型的类,可以考虑禁用拷贝构造和赋值操作。
template<typename T>
class List : public Object
{
protected:
List(const List&);
List& operator= (const List&);
public:
List() {}
//...
}
下面的代码正确吗?为什么?
int main()
{
StaticList<int ,5> list;
for(int i=0; i<list.capacity(); i++)
{
list[i]= i*i; //将线性表当作数组使用
}
return 0;
}
这段程序会崩掉,因为你把线性表当作数组来使用了。
线性表必须先插入元素,才能使用操作符[]访问元素。
问题分析:
顺序存储结构线性表提供了数组操作访问操作符重载,通过重载能够快捷方便的获取目标位置处的数据元素,在具体的使用形式上类似数组,但是由于本质不同,不能代替数组使用