C++ map 删除键值对
时间: 2024-01-23 22:02:48 浏览: 167
在C++中,可以使用`map`的`erase()`方法来删除键值对。具体操作如下:
假设我们有一个`map`对象`myMap`,要删除其中的键值对`key`,可以使用以下代码:
```c++
auto position = myMap.find(key); // 找到要删除的键值对的迭代器
if (position != myMap.end()) { // 如果找到了
myMap.erase(position); // 删除该键值对
}
```
其中,`find()`方法返回一个迭代器,指向要删除的键值对。如果找到了该键值对,则使用`erase()`方法删除该键值对。`erase()`方法会返回一个迭代器,指向删除键值对之后的那个键值对。
另外,如果要删除`map`中的所有键值对,可以使用`clear()`方法,具体操作如下:
```c++
myMap.clear(); // 删除所有键值对
```
相关问题
unordered_map删除键值对
使用unordered_map删除键值对的方法是调用erase()函数,传入要删除的键作为参数。例如,如果要删除键为"Alice"的键值对,可以使用myMap.erase("Alice")。这样就能从unordered_map中删除对应的键值对了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [c++ unordered_map用法详解](https://blog.csdn.net/weixin_54570755/article/details/130118903)[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: 50%"]
- *2* *3* [unordered_set/map(哈希表)干货归纳+用法详解](https://blog.csdn.net/lzq8090/article/details/129788666)[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: 50%"]
[ .reference_list ]
unordered_map 删除键值对
可以使用 `erase` 成员函数来删除 `unordered_map` 中的键值对。它的参数可以是一个迭代器指向要删除的元素,也可以是一个键,它会删除具有该键的元素。下面是一些示例代码:
```c++
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap {{"apple", 1}, {"banana", 2}, {"orange", 3}};
// 删除具有键 "banana" 的元素
myMap.erase("banana");
// 删除迭代器指向的元素
auto it = myMap.find("apple");
if (it != myMap.end()) {
myMap.erase(it);
}
// 删除所有元素
myMap.clear();
// 遍历剩余元素
for (const auto& [key, value] : myMap) {
std::cout << key << ": " << value << std::endl;
}
return 0;
}
```
输出:
```
```
阅读全文