c++怎么创建顺序表,假设该线性表的数据元素个数在最坏情况下不会超过50个,并进行初始化
时间: 2024-10-15 19:08:57 浏览: 26
在 C++ 中,你可以使用数组或标准库容器(如 `std::array` 或 `std::vector`)来创建顺序表,特别是当数据元素个数有限且不会频繁改变时,数组可能是更简单的选择。这里我们以数组为例进行说明,因为数组比动态数组(如 `std::vector`)更快,适合存储预知大小的数据。
首先,创建一个数组并初始化:
```cpp
#include <iostream>
// 定义一个模板类 SequenceList,用于存储任意类型的元素
template <typename T>
class SequenceList {
private:
T elements[50]; // 最大容量为50,超出部分不会自动扩容
int size;
public:
// 构造函数,初始化数组
SequenceList() : size(0) {}
// 初始化列表,用给定的值填充数组
void initialize(const T& value) {
for (int i = 0; i < 50 && i < size; ++i)
elements[i] = value;
}
// 获取元素访问
T& operator[](int index) {
if (index < 0 || index >= size) {
throw std::out_of_range("Index out of range");
}
return elements[index];
}
// 返回当前元素个数
int size() const {
return size;
}
// 插入或追加元素
void push_back(const T& value) {
if (size == 50) {
throw std::runtime_error("Array is full.");
}
elements[size++] = value;
}
// 移除最后一个元素
void pop_back() {
if (size > 0) {
--size;
}
}
};
int main() {
// 创建一个SequenceList实例
SequenceList<int> list;
// 初始化列表为0
list.initialize(0);
// 打印初始状态
for (int i = 0; i < list.size(); ++i) {
std::cout << list[i] << " ";
}
return 0;
}
```
在这个例子中,`initialize` 方法用于一次性设置所有元素的值,`push_back` 和 `pop_back` 分别用于向后添加和移除元素。请注意,这个数组在预设的最大范围内是固定的,如果你试图插入或删除超出范围的元素,程序可能会抛出异常。
阅读全文