帮我写一个SeqList.h的代码
时间: 2023-05-15 07:07:08 浏览: 114
好的,以下是SeqList.h的代码:
```c++
#ifndef SEQLIST_H
#define SEQLIST_H
#include <iostream>
template <typename T>
class SeqList {
private:
T* data; // 存储数据的数组
int length; // 当前长度
int maxSize; // 最大容量
public:
SeqList(int size = 10); // 构造函数
~SeqList(); // 析构函数
bool isEmpty() const; // 判断是否为空
int getLength() const; // 获取当前长度
int getMaxSize() const; // 获取最大容量
bool insert(int i, const T& x); // 在第i个位置插入元素x
bool remove(int i); // 删除第i个位置的元素
int search(const T& x) const; // 查找元素x的位置
T& operator[](int i); // 重载下标运算符
const T& operator[](int i) const; // 重载下标运算符
void print() const; // 打印所有元素
};
template <typename T>
SeqList<T>::SeqList(int size) {
data = new T[size];
length = 0;
maxSize = size;
}
template <typename T>
SeqList<T>::~SeqList() {
delete[] data;
}
template <typename T>
bool SeqList<T>::isEmpty() const {
return length == 0;
}
template <typename T>
int SeqList<T>::getLength() const {
return length;
}
template <typename T>
int SeqList<T>::getMaxSize() const {
return maxSize;
}
template <typename T>
bool SeqList<T>::insert(int i, const T& x) {
if (i < 0 || i > length || length == maxSize) {
return false;
}
for (int j = length; j > i; j--) {
data[j] = data[j - 1];
}
data[i] = x;
length++;
return true;
}
template <typename T>
bool SeqList<T>::remove(int i) {
if (i < 0 || i >= length) {
return false;
}
for (int j = i; j < length - 1; j++) {
data[j] = data[j + 1];
}
length--;
return true;
}
template <typename T>
int SeqList<T>::search(const T& x) const {
for (int i = 0; i < length; i++) {
if (data[i] == x) {
return i;
}
}
return -1;
}
template <typename T>
T& SeqList<T>::operator[](int i) {
return data[i];
}
template <typename T>
const T& SeqList<T>::operator[](int i) const {
return data[i];
}
template <typename T>
void SeqList<T>::print() const {
for (int i = 0; i < length; i++) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
}
#endif // SEQLIST_H
```
阅读全文