c++设计顺序表,用顺序表,插入一个元素
时间: 2024-10-09 16:08:18 浏览: 30
在C++中,设计一个简单的顺序表(也称为数组列表),我们通常会创建一个模板类`SequentialList`,包含一个动态数组作为数据容器,并提供插入元素的方法。以下是基本的设计:
```cpp
template <typename T>
class SequentialList {
private:
T* data; // 存储元素的指针
size_t capacity; // 容量
size_t size; // 当前元素数量
public:
SequentialList() : data(nullptr), capacity(0), size(0) {}
~SequentialList() { // 析构函数释放内存
if (data) {
delete[] data;
}
}
// 插入元素到列表末尾
void insert(const T& value) {
if (size == capacity) { // 如果已满,扩大容量
resize(capacity * 2);
}
data[size++] = value; // 将新值添加到末尾并更新大小
}
// 扩大容量,如果需要
void resize(size_t new_capacity) {
T* temp = new T[new_capacity];
for (size_t i = 0; i < size; ++i) {
temp[i] = data[i]; // 复制现有元素
}
delete[] data;
data = temp;
capacity = new_capacity;
}
// 获取元素数量
size_t getSize() const {
return size;
}
// 访问指定位置的元素
T& operator[](size_t index) {
if (index >= size) {
throw std::out_of_range("Index out of range");
}
return data[index];
}
// 省略其他常用操作,如检查是否为空等...
};
```
阅读全文