1、方法介绍

1.1、基于范围的for循环

for(auto &t : m){
    cout<<"key:"<<t.first<<" value:"<<t.second<<endl;
}

1.2、普通for循环

for(map<int,string>::iterator iter = m.begin(); iter != m.end(); ++iter){
    cout<<"key:"<<iter->first<<" value:"<<iter->second<<endl;
}

1.3、while 循环

map<int,string>::iterator iter=m.begin();
while(iter != m.end()){
    cout<<"key:"<<iter->first<<" value:"<<iter->second<<endl;
    ++iter;
}

2、完整代码

//遍历map的三种方式
//by 鸟哥

#include<iostream>
#include<string>
#include<map>

using namespace std;

int main(){
    map<int,string> m{};
    m[0]="aaa";
    m[1]="bbb";
    m[2]="ccc";

    map<int,string>::iterator it;

    //方式一
    cout<<"方式一:"<<endl;
    for(auto &t : m){
        cout<<"key:"<<t.first<<" value:"<<t.second<<endl;
    }
    
    //方式二
    cout<<"方式二:"<<endl;
    for(map<int,string>::iterator iter = m.begin(); iter != m.end(); ++iter){
        cout<<"key:"<<iter->first<<" value:"<<iter->second<<endl;
    }

    //第三种
    cout<<"方式三:"<<endl;
    map<int,string>::iterator iter=m.begin();
    while(iter != m.end()){
        cout<<"key:"<<iter->first<<" value:"<<iter->second<<endl;
        ++iter;
    }

}

3、运行结果:

注:测试环境为在线编译器 https://compiler-explorer.com/

方式一:
key:0 value:aaa
key:1 value:bbb
key:2 value:ccc
方式二:
key:0 value:aaa
key:1 value:bbb
key:2 value:ccc
方式三:
key:0 value:aaa
key:1 value:bbb
key:2 value:ccc

4、运行截图

在这里插入图片描述

5、参考资料

https://en.cppreference.com/
https://learn.microsoft.com/
https://compiler-explorer.com/


作者:鸟哥
希望我的文章对您有所帮助,如有问题请在下方留言。
限于本人水平,文中内容难免有错,如有错误望不吝指出。
如有csharp .net objectarx autocad autolisp 计算几何 c++ 等方面的问题,我们可以一起交流。
最后感谢所有帮助过我的老师和朋友。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐