qstringlist删除指定的部分
时间: 2023-09-17 07:12:00 浏览: 298
qt 删除文件中的指定行
可以使用 `removeAt()` 或 `removeOne()` 方法来删除 QStringList 中指定的元素。
- `removeAt(int index)`:删除指定位置 `index` 的元素。
```cpp
QStringList list = {"A", "B", "C", "D", "E"};
list.removeAt(2); // 删除位置 2 的元素
// list: {"A", "B", "D", "E"}
```
- `removeOne(const QString &value)`:删除第一次出现的指定元素。
```cpp
QStringList list = {"A", "B", "C", "D", "E"};
list.removeOne("C"); // 删除第一次出现的元素 "C"
// list: {"A", "B", "D", "E"}
```
如果要删除多个出现的元素,则可以结合使用 `removeAt()` 和 `indexOf()` 方法,或者使用 `removeAll()` 方法。
- `indexOf(const QString &value, int from = 0)`:从指定位置 `from` 开始查找元素 `value` 第一次出现的位置,返回其索引值。如果未找到,则返回 -1。
```cpp
QStringList list = {"A", "B", "C", "D", "E", "C"};
int index = list.indexOf("C"); // 查找元素 "C" 第一次出现的位置
while (index != -1) {
list.removeAt(index); // 删除该元素
index = list.indexOf("C", index); // 继续查找下一个元素 "C" 的位置
}
// list: {"A", "B", "D", "E"}
```
- `removeAll(const QString &value)`:删除所有出现的指定元素。
```cpp
QStringList list = {"A", "B", "C", "D", "E", "C"};
list.removeAll("C"); // 删除所有出现的元素 "C"
// list: {"A", "B", "D", "E"}
```
阅读全文