QStringlist a中有重复元素,如何去掉重复元素只留一个
时间: 2024-10-23 12:09:18 浏览: 51
`QStringList` 是 C++ Qt 库中的一个容器,它类似于 `std::list<QString>`,用于存储字符串序列。如果你想要从 `QStringList` 中移除重复的元素,你可以选择几种方法:
1. 使用 `QSet<QString>`:因为 `QSet` 是不包含重复元素的数据结构,所以你可以将 `QStringList` 转换为 `QSet`,然后再转换回 `QStringList` 来删除重复。
```cpp
QStringList a;
// ... (填充列表)
QSet<QString> uniqueElements(a);
QStringList uniqueList(uniqueElements.begin(), uniqueElements.end());
```
2. 遍历并添加到新的 `QStringList`:遍历原列表,只将未加入的新元素添加到新列表。
```cpp
QStringList a;
// ... (填充列表)
QStringList uniqueList;
for (const auto& str : a) {
if (!uniqueList.contains(str)) {
uniqueList.append(str);
}
}
```
3. 使用 `QMap<QString, bool>`:如果想保留顺序,可以使用 `QMap` 存储元素及其是否出现过的信息。
```cpp
QStringList a;
// ... (填充列表)
QMap<QString, bool> seen;
QStringList uniqueList;
for (const auto& str : a) {
if (!seen[str]) {
uniqueList << str;
seen[str] = true;
}
}
```
阅读全文