c++定义一个顺序表
时间: 2024-07-25 09:01:11 浏览: 60
在 C++ 中,定义一个顺序表(也称为线性表)通常会使用数组作为底层数据结构。你可以创建一个模板类,它包含一个动态大小的数组以及一些基本操作,如添加元素、删除元素、访问元素等。这里是一个简单的示例:
```cpp
template <typename T> // 指定元素的类型
class SequentialList {
private:
T* elements; // 存储元素的指针
size_t size; // 当前列表的大小
static const size_t DEFAULT_CAPACITY = 4; // 初始容量
public:
SequentialList() : elements(new T[DEFAULT_CAPACITY]), size(0) {}
~SequentialList() { delete[] elements; } // 析构函数,释放内存
// 添加元素到列表末尾
void push_back(T value) {
if (size == DEFAULT_CAPACITY) {
resize(size * 2); // 如果已满,扩大容量
}
elements[size++] = value;
}
// 访问指定索引的元素
T& operator[](size_t index) {
if (index < size) {
return elements[index];
}
throw std::out_of_range("Index out of range"); // 异常处理,防止越界访问
}
// 返回元素数量
size_t get_size() const {
return size;
}
private:
// 扩大数组容量
void resize(size_t new_capacity) {
T* new_elements = new T[new_capacity];
for (size_t i = 0; i < size; ++i) {
new_elements[i] = elements[i];
}
delete[] elements;
elements = new_elements;
}
};
```
在这个例子中,`SequentialList` 类通过 `push_back()` 函数向后添加元素,并能通过下标访问。注意,这只是一个基础实现,实际使用时可能会加入更多的功能,比如查找、插入和删除元素。
阅读全文