c++6-1 构造顺序表并输出
时间: 2024-10-07 09:04:01 浏览: 34
C++顺序表的实例代码
在 C++ 中,构造顺序表(也称为动态数组)通常通过使用数组和指针实现。这里我们假设你想创建一个简单的整数顺序表,并能添加元素和输出元素。首先,你可以创建一个模板类 `SequenceList`,用于存储任意类型的元素:
```cpp
template <typename T>
class SequenceList {
private:
int size;
T* elements;
public:
// 构造函数,初始化列表大小为0,元素为nullptr
SequenceList() : size(0), elements(nullptr) {}
// 析构函数,释放内存
~SequenceList() { delete[] elements; }
// 添加新元素到末尾
void addElement(T value) {
if (size == capacity()) {
resize(size * 2); // 当达到容量上限时扩大两倍
}
elements[size++] = value;
}
// 输出所有元素
void display() const {
for (int i = 0; i < size; ++i) {
std::cout << "Element at index " << i << ": " << elements[i] << "\n";
}
}
private:
// 动态调整数组大小
void resize(int newCapacity) {
T* newArr = new T[newCapacity];
for (int i = 0; i < size; ++i) {
newArr[i] = elements[i];
}
delete[] elements;
elements = newArr;
size = newCapacity;
}
// 初始容量
static constexpr int capacity() { return 4; } // 这里仅示例,实际应用可能需要自定义
};
```
要使用这个类,你可以这样做:
```cpp
int main() {
SequenceList<int> list;
list.addElement(5);
list.addElement(10);
list.addElement(15);
std::cout << "Before resizing:\n";
list.display();
list.addElement(20); // 超出原容量,会自动扩容
std::cout << "After adding more elements:\n";
list.display();
return 0;
}
```
阅读全文