在C++98标准中,std::map::erase函数的返回值是一个iterator,指向被删除元素之后的元素。如果删除的是最后一个元素,则返回end()迭代器。

下面是一个使用C++98标准的例子:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap.insert(std::make_pair(1, "One"));
    myMap.insert(std::make_pair(2, "Two"));
    myMap.insert(std::make_pair(3, "Three"));
    
    std::map<int, std::string>::iterator it = myMap.find(2);
    if (it != myMap.end()) {
        it = myMap.erase(it);
        std::cout << "Erased element: " << it->first << " -> " << it->second << std::endl;
    }
    
    std::cout << "Remaining elements: " << std::endl;
    for (it = myMap.begin(); it != myMap.end(); ++it) {
        std::cout << it->first << " -> " << it->second << std::endl;
    }
    
    return 0;
}

这个例子中,我们创建了一个std::map,并插入了三个键值对。然后我们使用find函数找到键为2的元素,并调用erase函数删除它。erase函数返回一个指向被删除元素之后的元素的迭代器。我们使用这个迭代器输出被删除元素的信息。最后,我们遍历剩余的元素并输出它们的信息


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

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