C++98 标准下 std::map 遍历删除示例
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 递增。
原文地址: https://www.cveoy.top/t/topic/fdwe 著作权归作者所有。请勿转载和采集!