qlist<double> 快速去重
时间: 2024-09-18 10:10:37 浏览: 58
custom-list-model.zip_List<Custom> list_list qt_qt list_qt lis
`qlist<double>` 是 Qt 库中的容器,它是一个双向链表,通常用于存储动态数据。如果需要快速去除 `qlist<double>` 中的重复元素,可以使用 `unique()` 函数,这是标准库 `<algorithm>` 中的一个算法,专门用于消除序列中的重复项。
以下是一个简单的示例:
```cpp
#include <QList>
#include <algorithm>
// 假设你有一个包含double类型的qlist
QList<double> numbers = ... // 包含重复值
numbers.removeDuplicates(); // 这会直接在原列表上操作,移除重复项
```
如果你想要保留原始顺序并创建一个新的不重复的列表,你可以这样做:
```cpp
QList<double> uniqueNumbers;
std::copy_if(numbers.begin(), numbers.end(), std::back_inserter(uniqueNumbers), std::bind(std::equal_to<double>(), _1, _2)); // 使用bind函数避免硬编码比较
```
这里,`std::back_inserter(uniqueNumbers)` 是一种插入迭代器,可以把元素添加到 `uniqueNumbers` 的末尾。
阅读全文