C++98 标准下 std::map 遍历删除示例

在 C++98 标准下,可以使用迭代器来遍历和删除 std::map 中的元素。以下是一个示例代码:

#include <iostream>
#include <map>
#include <string>

int main() {
    std::map<std::string, int> compress_task;
    compress_task['file1'] = 1;
    compress_task['file2'] = 2;
    compress_task['file3'] = 3;

    std::map<std::string, int>::iterator it = compress_task.begin();
    while (it != compress_task.end()) {
        if (it->second == 2) {
            compress_task.erase(it++);
        } else {
            ++it;
        }
    }

    // 遍历输出
    for (it = compress_task.begin(); it != compress_task.end(); ++it) {
        std::cout << it->first << ': ' << it->second << std::endl;
    }

    return 0;
}

在上述示例中,我们首先创建了一个 std::map 对象 compress_task,并添加了一些键值对。然后,我们使用迭代器 it 来遍历 std::map,如果某个元素的值等于 2,则使用 erase 函数删除该元素,并将迭代器 it 递增。最后,我们再次使用迭代器 it 来遍历输出剩余的元素。

注意,在 C++98 标准中,erase 函数会返回下一个元素的迭代器,所以我们需要在 erase 函数之后将迭代器 it 递增。

C++98 标准下 std::map 遍历删除示例

原文地址: https://www.cveoy.top/t/topic/fdwe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录