QMap.erase
时间: 2023-10-21 13:58:30 浏览: 159
在C++中,QMap的erase函数用于从映射中删除指定的元素。它接受一个迭代器参数,并返回指向被删除元素后面的元素的迭代器。在给定的示例代码中,erase函数被用来删除偶数项。具体来说,通过迭代器it遍历QMap中的元素,如果当前键的值是偶数,则使用erase函数删除该元素,并将迭代器指向被删除元素后面的元素。这样可以避免在迭代器操作时遇到问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [QT类学习系列(9)- Qt::QMap在for循环中使用erase的用法注意](https://blog.csdn.net/qq_22122811/article/details/89319320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
QMap erase
QMap的erase函数用于删除指定的元素。根据引用和引用的描述,使用erase函数后,迭代器指针会失效,再次调用会导致崩溃。为了避免这个问题,建议在erase操作后,更新迭代器指针的位置,可以使用it = mapIntToInt.erase(it)的形式。下面是一个示例代码,演示了如何在for循环中使用QMap的erase函数:
```cpp
QMap<int, int> mapIntToInt;
mapIntToInt.insert(1, 10);
mapIntToInt.insert(2, 20);
mapIntToInt.insert(3, 30);
mapIntToInt.insert(4, 40);
QMap<int, int>::iterator it;
for (it = mapIntToInt.begin(); it != mapIntToInt.end(); ) {
int num = it.key();
qDebug() << "The current number is " << num;
if (num % 2 == 0) {
it = mapIntToInt.erase(it);
qDebug() << "Erased number: " << num;
} else {
++it;
}
}
```
在上述示例中,我们创建了一个QMap对象mapIntToInt,并插入了四个键值对。然后,我们使用for循环遍历mapIntToInt,并根据条件删除偶数键值对。在删除操作后,我们使用it = mapIntToInt.erase(it)更新迭代器指针的位置,以避免迭代器失效的问题。
qt qmap的使用
Qt QMap是一种关联容器,它存储键值对,其中键(key)是唯一的,值(value)可以是任意类型的对象。QMap的主要用途是在查找、插入和删除元素时提供高效的性能,特别是对于需要快速定位数据的应用场景。
使用QMap的基本步骤包括:
1. 创建QMap实例:你可以指定默认的键值映射策略,如`QMap<QString, int>`创建一个字符串到整数的映射。
```cpp
QMap<QString, int> QMapExample;
```
2. 插入元素:使用`insert()`函数添加新的键值对。
```cpp
QMapExample.insert("Key1", 10);
```
3. 访问元素:通过键获取值,如果键不存在则会抛出异常。可以使用`operator[]`或`value()`。
```cpp
int value = QMapExample["Key1"];
```
4. 删除元素:使用`remove()`或`erase()`移除特定的键值对。
```cpp
QMapExample.erase("Key1");
```
5. 遍历元素:可以使用迭代器`begin()`和`end()`来遍历所有元素。
```cpp
for (auto it = QMapExample.begin(); it != QMapExample.end(); ++it) {
qDebug() << "Key: " << it.key() << ", Value: " << it.value();
}
```
阅读全文