配套环境
clion + g++
设计目标
完成StaticList类的具体实现
完成DynamicList类的具体实现
设计方案
StaticList设计要点
-类模板
1.使用原生数组作为顺序存储空间
2.使用模板参数决定数组大小
DynamicList设计要点
-类模板
1.申请连续堆空间作为顺序存储空间
2.动态设置顺序存储空间大小
3.保证重置顺序存储空间时的异常安全性
-函数异常安全的概念
1.不泄漏任何资源
2.不允许破坏数据
-函数异常安全的基本保证
如果异常被抛出,对象内的任何成员仍然能保持有效状态,没有数据破坏及资源泄漏
实现代码
StaticList.h
#ifndef STATICLIST_H
#define STATICLIST_H
#include "SeqList.h"
namespace DTLib {
template<typename T, int N>
class StaticList : public SeqList<T> {
protected:
T m_space[N];
public:
StaticList(){
this->m_array = m_space;
this->m_length = 0;
}
int capacity() const{
return N;
}
};
} // namespace DTLi