C++ map遍历

C++ map遍历

#include <iostream>
#include <map>

using namespace std;

int main() {
    map<int, int> _map;
    _map[0] = 1;
    _map[1] = 2;
    _map[10] = 10;

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

    // 也可以使用for循环遍历
    /*
    for(iter = _map.begin(); iter != _map.end(); iter++) {
        cout << iter->first << " : " << iter->second << endl;
    }
    */
    return 0;
}

程序的运行结果为:

这里写图片描述

注意:
如果使用for循环遍历map,不能写成 ‘<’ 的形式

这里写图片描述

这里写图片描述

  • 63
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
C++中,可以使用迭代器、range for循环和C++17的结构化绑定来遍历map。 一种遍历方式是使用迭代器。可以通过使用map的begin()和end()函数来获取map的起始和结束迭代器,然后使用一个循环来迭代访问每个元素。例如,可以使用以下代码进行遍历: #include <map> #include <iostream> int main() { std::map<int, std::string> mapStudent; mapStudent = "student_one"; mapStudent = "student_two"; mapStudent = "student_three"; std::map<int, std::string>::iterator iter; // 声明迭代器 for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++) { std::cout << iter->first << " " << iter->second << std::endl; } return 0; } 另一种遍历方式是使用C++11及以上版本的range for循环。可以直接使用auto关键字来声明一个变量来表示每个键值对,并通过range for循环遍历map。以下是示例代码: #include <iostream> #include <unordered_map> int main() { std::unordered_map<std::string, int> mp; mp["张三"] = 20; mp["李四"] = 18; mp["王五"] = 30; std::cout << "方式一、迭代器" << std::endl; for (auto it = mp.begin(); it != mp.end(); it++) { std::cout << it->first << " " << it->second << std::endl; } std::cout << "\n方法二、range for" << std::endl; for (auto it : mp) { std::cout << it.first << " " << it.second << std::endl; } std::cout << "\n方法三" << std::endl; for (auto [key, val] : mp) { std::cout << key << " " << val << std::endl; } return 0; } 另外还可以使用简单的for循环和size()函数来遍历map。以下是示例代码: #include <map> #include <iostream> int main() { std::map<int, std::string> mapStudent; mapStudent = "student_one"; mapStudent = "student_two"; mapStudent = "student_three"; int iSize = mapStudent.size(); for (int i = 1; i <= iSize; i++) { std::cout << i << " " << mapStudent[i] << std::endl; } return 0; } 以上是C++遍历map的几种方式。可以根据实际情况选择合适的方式来遍历map。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [C++map遍历](https://blog.csdn.net/chengqiuming/article/details/89815814)[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_1"}}] [.reference_item style="max-width: 50%"] - *2* [C++ map遍历的几种方式](https://blog.csdn.net/VariatioZbw/article/details/124947520)[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_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值