gpt4 book ai didi

c++ - map 删除困难

转载 作者:行者123 更新时间:2023-11-28 07:41:39 28 4
gpt4 key购买 nike

如何删除 map 的内层 map 的第一个元素?

我试过做类似的事情

my_map[here].erase(my_map[here].begin()) 

但我得到了意想不到的结果。任何建议或资源都会很棒。

最佳答案

my_map[这里] 真的存在吗?

你可能想找到它,即

if((auto it = my_map.find(here)) != my_map.end()) {
it->erase(it->begin());

}

如果 my_map[here] 在您尝试访问它时不存在,则会在那里创建一个新元素:

http://www.cplusplus.com/reference/map/map/operator%5B%5D/

If k does not match the key of any element in the container, the function inserts a new element with that key and returns a reference to its mapped value. Notice that this always increases the container size by one, even if no mapped value is assigned to the element (the element is constructed using its default constructor).

为防止这种情况,您可以使用我在上面指出的find 函数。find 搜索具有指定键的元素。如果它找到了什么,它会将迭代器返回到该元素。否则,它将返回 my_map.end(),这不是最后一个元素,而是一个表示结构结束的特殊迭代器。

关于c++ - map 删除困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725822/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com