c++顺序表删除偶数
时间: 2024-09-29 14:08:58 浏览: 40
在C++中,如果你想要从顺序表(通常是指基于数组的简单数据结构)中删除所有偶数,可以创建一个新的列表只包含奇数。以下是使用迭代和条件判断的一个基本示例:
```cpp
#include <iostream>
// 假设我们有一个简单的顺序表模板类
template <typename T>
class SequenceList {
public:
// 添加元素到列表尾部
void add(T item) { elements.push_back(item); }
private:
std::vector<T> elements;
};
// 删除偶数并更新原顺序表
template <typename T>
void removeEven(SequenceList<T>& list) {
for (size_t i = 0; i < list.elements.size(); ++i) {
if (list.elements[i] % 2 != 0) { // 如果不是偶数,保留
list.elements.erase(list.elements.begin() + i); // 移除偶数位置的元素
--i; // 要修正由于移除导致的索引变化
}
}
}
int main() {
SequenceList<int> intList;
intList.add(1);
intList.add(2);
intList.add(3);
intList.add(4);
intList.add(5);
std::cout << "Before removing even numbers:\n";
for (const auto& num : intList.elements) {
std::cout << num << " ";
}
removeEven(intList);
std::cout << "\nAfter removing even numbers:\n";
for (const auto& num : intList.elements) {
std::cout << num << " ";
}
return 0;
}
```
在这个例子中,`removeEven`函数遍历顺序表,如果遇到偶数就从列表中移除。注意,这种方法会改变原始列表的大小,并且不会保持原始的偶数元素。
阅读全文