map<int,int>::iterator
时间: 2025-03-09 11:09:02 浏览: 28
### C++ `map<int, int>` 迭代器用法
在C++标准模板库(STL)中,`std::map<Key,T>` 是一种关联容器,它存储由键值和映射到该键上的值组成的元素对。对于 `std::map<int,int>`, 键和值都是整数类型。
#### 获取迭代器
为了访问或修改 `std::map<int,int>` 容器中的元素,可以使用迭代器。可以通过成员函数 `.begin()` 和 `.end()` 来获取指向第一个元素以及最后一个元素之后位置的迭代器:
```cpp
#include <iostream>
#include <map>
int main(){
std::map<int, int> myMap;
// 插入一些数据
myMap.insert(std::make_pair(1, 2));
myMap.insert(std::make_pair(3, 4));
// 使用 begin() 和 end()
for(auto it = myMap.begin(); it != myMap.end(); ++it){
std::cout << "Key: " << (*it).first << ", Value: " << (*it).second << '\n';
}
}
```
上述代码展示了如何遍历整个地图并打印每一对键值[^1]。
#### 查找特定键对应的迭代器
当需要查找某个具体键是否存在及其对应值时,可利用成员函数`.find(key)`返回一个指向匹配项的迭代器;如果未找到,则返回等于`.end()` 的迭代器:
```cpp
auto search_key = 3;
if(myMap.find(search_key)!=myMap.end()){
std::cout<<"Found key:"<<search_key<<", value="<<(*myMap.find(search_key)).second<<"\n";
}else{
std::cout<<"Key "<<search_key<<" is not present\n";
}
```
这段程序演示了通过给定的关键字去寻找相应的记录,并输出其值或者提示不存在此关键字的情况.
#### 删除指定键处的元素
除了读取外还可以删除某节点,这同样依赖于迭代器操作:
```cpp
// 假设已经存在这样的键
auto del_it=myMap.find(some_key);
if(del_it!=myMap.end())
myMap.erase(del_it);
```
这里先定位要移除的位置再调用 erase 函数完成清除工作.
阅读全文
相关推荐


















