c++定义一个递增顺序表类并添加按位置插入和替换元素方法
时间: 2024-09-23 20:07:28 浏览: 44
在 C++ 中,我们可以创建一个名为 `SequentialList` 的递增顺序表类,它支持动态数组的方式存储数据,并提供插入和替换元素的方法。下面是一个简单的实现示例:
```cpp
#include <iostream>
#include <vector>
class SequentialList {
private:
std::vector<int> data; // 数据存储
public:
// 构造函数
SequentialList() {}
// 插入元素于指定位置(支持自动扩容)
void insert(int value, size_t position) {
if (position > data.size()) {
for (size_t i = data.size(); i <= position; ++i) {
data.push_back(0); // 如果超出范围,自动增加空间
}
}
data.insert(data.begin() + position, value);
}
// 替换元素(如果存在,则替换;否则添加)
void replace(int old_value, int new_value, size_t position) {
auto it = find(data.begin(), data.end(), old_value);
if (it != data.end()) {
*it = new_value;
} else {
insert(new_value, position); // 没找到旧值,则直接插入新值
}
}
// 查找元素(仅用于演示查找操作,实际场景中可能有其他优化)
size_t find(int value) const {
return std::find(data.begin(), data.end(), value) - data.begin();
}
// 打印列表内容
void print_list() const {
for (const auto& elem : data) {
std::cout << elem << " ";
}
std::cout << std::endl;
}
};
int main() {
SequentialList list;
list.insert(5, 0); // 插入5在第一个位置
list.print_list(); // 输出: 5
list.replace(5, 7, 1); // 将第二个位置的元素替换为7
list.print_list(); // 输出: 5 7
return 0;
}
```
在这个例子中,我们定义了一个 `SequentialList` 类,包含一个内部的 `std::vector<int>` 用于存储整数。`insert()` 和 `replace()` 方法分别实现了按位置插入和替换元素的功能。`find()` 方法用于查找元素的位置,但在此示例中未用到。
阅读全文