生成顺序表1和顺序表2
时间: 2024-09-14 19:01:55 浏览: 36
生成两个顺序表(也称为数组或线性表)通常涉及到创建数据结构并填充元素。在C++中,我们可以使用`std::vector`或自定义数组来实现顺序表。
**使用`std::vector`:**
```cpp
#include <iostream>
#include <vector>
// 如果需要,可以创建一个模板类或通用的顺序列表
template <typename T>
class SequentialList {
public:
std::vector<T> elements;
// 构造函数添加默认值
SequentialList() : elements(5, T{}), size_(0) {}
// 添加元素到列表末尾
void addElement(T value) {
elements.push_back(value);
size_++;
}
int getSize() const {
return size_;
}
private:
int size_; // 存储元素数量
};
int main() {
SequentialList<int> list1; // 创建整数顺序表
for (int i = 1; i <= 5; i++) {
list1.addElement(i);
}
std::cout << "List 1 size: " << list1.getSize() << "\n";
SequentialList<std::string> list2; // 创建字符串顺序表
for (const char* str = "Hello"; *str != '\0'; ++str) {
list2.addElement(str);
}
std::cout << "List 2 size: " << list2.getSize() << "\n";
return 0;
}
```
**自定义数组:**
```cpp
#include <iostream>
// 自定义顺序列表(不推荐,因为固定大小限制)
class FixedSizeSequentialList {
static constexpr int MAX_SIZE = 10;
T data[MAX_SIZE];
int size;
public:
FxedSizeSequentialList() : size(0) {}
void addElement(T value) {
if (size == MAX_SIZE) {
throw std::runtime_error("List is full");
}
data[size++] = value;
}
// ...其他操作...
private:
// 类型T应在这里指定
};
int main() {
FixedSizeSequentialList<int> list1;
for (int i = 1; i <= 5 && list1.size < MAX_SIZE; i++) {
list1.addElement(i);
}
// ...其他处理...
FixedSizeSequentialList<std::string> list2;
// ...同样适用于字符串...
}
```
阅读全文