在qt中,一个整形的QList容器,如何删除其中连续的相等的数据,将两个相等的数据都删除,并返回删除后的链表
时间: 2024-04-09 07:33:35 浏览: 142
C语言链表的相同元素的删除
您可以使用Qt的QList类提供的函数来删除连续相等的整数。以下是一个示例代码,展示了如何实现该功能:
```cpp
#include <QList>
QList<int> removeDuplicates(const QList<int>& inputList) {
QList<int> result;
int count = inputList.size();
for (int i = 0; i < count; ++i) {
int current = inputList[i];
int next = (i + 1 < count) ? inputList[i + 1] : 0;
if (current != next) {
result.append(current);
} else {
while (i < count && inputList[i] == next) {
++i;
}
}
}
return result;
}
int main() {
QList<int> inputList = {1, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5};
QList<int> result = removeDuplicates(inputList);
// 输出删除连续相等数据后的链表
for (int i = 0; i < result.size(); ++i) {
qDebug() << result[i];
}
return 0;
}
```
在上面的代码中,我们定义了一个`removeDuplicates`函数,该函数接受一个输入列表`inputList`并返回删除连续相等数据后的链表。函数使用一个循环遍历输入列表,检查当前元素与下一个元素是否相等。如果相等,则继续查找下一个不相等的元素,直到找到不相等的元素为止。然后将这个不相等的元素添加到结果列表中。
在主函数中,我们创建了一个示例输入列表`inputList`,包含了一些连续相等的整数。然后调用`removeDuplicates`函数来删除连续相等的数据,并将结果输出。在这个例子中,输出结果为`1, 3, 4, 5`。
请注意,上述代码仅演示了一种实现方式,您可以根据您的需求进行调整和修改。
阅读全文