向量vector
#ifndef MYVECTOR_H
#define MYVECTOR_H
typedef int Rank; //秩
#define DEFAULT_CAPACITY 3 //默认的初始容量
template <typename T> //向量魔板类
class myVector{
protected:
Rank _size; //规模
int _capactity; //容量
T* _elem; //数据区
void copyFrom(const T* A, Rank lo, Rank hi); //复制数组区间A
void expand(); //空间不足时扩容
void shrink(); //装填因子过小时压缩
bool bubble(Rank lo, Rank hi); //扫描交换
void bubbleSort(Rank lo, Rank hi); //冒泡排序算法
Rank max(Rank lo, Rank hi); //选取最大元素
void selectionSort(Rank lo, Rank hi); //选择排序算法
void merge(Rank lo, Rank mi, Rank hi); //归并排序
void mergeSort(Rank lo, Rank hi); //归并排序算法
Rank partition(Rank lo, Rank hi); //轴点构造算法
void quickSort(Rank lo, Rank hi); //快速排序算法
void heapSort(Rank lo, Rank hi); //堆排序算法
public:
//构造函数
myVector(int c = DEFAULT_CAPACITY, int s = 0, T v = 0){ //容量为c,规模为s,所有元素初始化为v
_elem = new T[_capactity = c];
for (_size = 0; _size< s; ++_size)
{
_elem[_size] = v;
}
}
myVector(const T* A, Rank lo, Rank hi){
comyFrom(A, lo, hi);
}
myVector(T const* A, Rank n) { copyFrom(A, 0, n); } //数组整体复制
myVector(myVector<T> const& V, Rank lo, Rank hi) { copyFrom(V._elem, lo, hi); } //向量区间复制
myVector(myVector&l