首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何遍历/迭代STL Map?

遍历/迭代STL Map的方法有两种:一种是使用迭代器,另一种是使用基于范围的for循环。

  1. 使用迭代器:
代码语言:cpp
复制
#include<iostream>
#include <map>

int main() {
    std::map<int, std::string> my_map;
    my_map[1] = "one";
    my_map[2] = "two";
    my_map[3] = "three";

    for (std::map<int, std::string>::iterator it = my_map.begin(); it != my_map.end(); ++it) {
        std::cout << "Key: " << it->first << ", Value: " << it->second<< std::endl;
    }

    return 0;
}
  1. 使用基于范围的for循环(C++11及以上版本):
代码语言:cpp
复制
#include<iostream>
#include <map>

int main() {
    std::map<int, std::string> my_map;
    my_map[1] = "one";
    my_map[2] = "two";
    my_map[3] = "three";

    for (const auto &pair : my_map) {
        std::cout << "Key: "<< pair.first << ", Value: "<< pair.second<< std::endl;
    }

    return 0;
}

这两种方法都可以遍历STL Map中的所有元素,并输出它们的键和值。在实际应用中,可以根据需要选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++ STL map迭代器失效问题

最后想了一下,是不是某个地方线程做了耗时或者同步阻塞操作导致的,或者线程中执行了死循环,排查后发现是因为一个同事在对map做循环遍历时,erase操作不当,导致某个地方迭代器失效,线程崩溃了,持有两把锁...map迭代器失效问题 下面来看一下错误的map迭代器失效写法,代码如下: #include #include #include #include...正确的map迭代器删除操作示例 正确的写法如下: #include #include #include #include using..."\n"; } std::cout << std::endl; } int main() { mapTest(); return 0; } 运行结果如下图所示: 参考文章 【C++ STL...】迭代器失效的几种情况总结 STL容器迭代器失效情况分析、总结 迭代器失效的几种情况总结

56410

【C++】STL 容器 - map 关联容器 ③ ( map 容器常用 api 操作 | map 容器迭代遍历 | map#insert 函数返回值处理 )

文章目录 一、map 容器迭代遍历 1、map 容器迭代器 2、代码示例 二、map 容器插入结果处理 1、map#insert 函数返回值处理 2、代码示例 一、map 容器迭代遍历 1、map...容器迭代器 C++ 语言中 标准模板库 ( STL ) 的 std::map 容器 提供了 begin() 成员函数 和 end() 成员函数 , 这两个函数 都返回一个迭代器 , 指向容器中的元素 ;...std::map#begin() 成员函数 : 该函数返回指向容器中第一个元素的迭代器 ; 对于std::map 容器来说 , 该元素是按键排序后的第一个键值对 ; 如果 map 容器为空 , 则返回的迭代器就是...末尾迭代器 ; std::map#end() 成员函数 : 该函数返回指向容器末尾位置的迭代器 , 末尾位置实际上并不包含任何元素 , 而是作为遍历结束的标志 ; 如果通过 end() 末尾迭代器来访问元素直接崩溃退出...容器的类型是 map , 其迭代器类型是 map::iterator , map#insert 函数的返回值是 迭代器类型 和 bool 值组成的键值对

67410
  • C++(STL):29 ---关联式容器map 迭代

    无论是前面学习的序列式容器,还是关联式容器,要想实现遍历操作,就必须要用到该类型容器的迭代器。当然,map 容器也不例外。...C++ STL 标准库为 map 容器配备的是双向迭代器(bidirectional iterator)。...这意味着,map 容器迭代器只能进行 ++p、p++、--p、p--、*p 操作,并且迭代器之间只能使用 == 或者 != 运算符进行比较。...下面程序以 begin()/end() 组合为例,演示了如何遍历 map 容器: #include #include // pair #include <string...在此基础上,通过调用 find() 方法,我们可以得到一个指向键为 "Java教程" 的键值对的迭代器,由此当使用 for 循环从该迭代器出开始遍历时,就只会遍历到最后 2 个键值对。

    98120

    Java基础学习|如何遍历Map

    前言 Map的循环遍历是一种很常见的循环遍历,他可被用于数组、对象、集合等多种数据类型之间进行循环遍历,获取数据的值。...Map的用途很广,所有的的开发者Map应该都不陌生,每次面试也都会遇到Map相关的很多问题。本篇主要想简单介绍下Map的循环遍历相关的特性以及使用Map的一些思考。...Map遍历实践 Map遍历有很多方式,常见的也就是Map.Entry接口for循环、Map.Entry接口迭代器、增强的for循环、Java 8的Streams API。...+ ", Value = " + entry.getValue()); } } 输出结果: (2)Map.Entry接口迭代器 虽然使用迭代器进行循环,但是本质还是遵循for...:使用for-each循环、使用迭代器、使用Lambda表达式和使用Stream API。

    14110

    STL源码剖析_迭代

    何为迭代器 2. 实现一个简单的迭代器 3....参考 按照《STL源码剖析》中STL知识的编排顺序,学习完空间配置器之后,就是迭代器和traits编程技法了,学习完这三个概念,才算做好了继续学习stl的准备。...在STL中,数据容器和算法是分开的,所以就需要迭代器这种胶合剂来给算法提供一个访问不同容器的的途径,这样只需要一套算法,就能访问不同的容器。...迭代器的使用方法和行为非常像一个指针,也有取值(dereference或*操作)、取址、->、++、–、==、!=等操作。所以迭代器也可以看作一个智能指针。..."<<std::endl; } return 0; } 参考 《STL源码剖析》 欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/

    25620
    领券