不动产网站建设跨境电商网站建设开发
2026/5/12 13:41:49 网站建设 项目流程
不动产网站建设,跨境电商网站建设开发,html代码特效银河系,某个网站seo分析实例提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录1. 普通迭代器遍历#xff08;最基础方式#xff09;2. const迭代器遍历#xff08;只读场景#xff09;3. 反向迭代器遍历#xff08;逆序遍历#xff09;4. …提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录1. 普通迭代器遍历最基础方式2. const迭代器遍历只读场景3. 反向迭代器遍历逆序遍历4. 范围for循环C11简洁5. 结构化绑定 范围forC17更直观6. std::for_each 算法函数式风格C11总结在C中std::map是一种有序关联容器存储键值对std::pairconst Key, T。遍历std::map的方式有多种根据C标准版本和使用场景可分为以下几类1. 普通迭代器遍历最基础方式通过begin()和end()获取迭代器遍历所有键值对。迭代器指向的元素是std::pairconst Key, T其中first为键不可修改second为值可修改。#includeiostream#includemapusingnamespacestd;intmain(){mapint,stringmyMap{{1,one},{2,two},{3,three}};// 普通迭代器可修改值for(mapint,string::iterator itmyMap.begin();it!myMap.end();it){cout键it-first值it-secondendl;// 可以修改值键不可修改因为是const// it-second _modified;}return0;}2. const迭代器遍历只读场景若只需读取元素不修改使用const_iterator更安全通过cbegin()和cend()获取。// const迭代器只读不可修改值for(mapint,string::const_iterator itmyMap.cbegin();it!myMap.cend();it){cout键it-first值it-secondendl;// 错误it-second new; const迭代器不允许修改值}3. 反向迭代器遍历逆序遍历通过rbegin()指向最后一个元素和rend()指向第一个元素前的位置实现逆序遍历适用于需要从大到小访问的场景。// 反向迭代器逆序遍历for(mapint,string::reverse_iterator itmyMap.rbegin();it!myMap.rend();it){cout键it-first值it-secondendl;}// const反向迭代器逆序只读for(mapint,string::const_reverse_iterator itmyMap.crbegin();it!myMap.crend();it){cout键it-first值it-secondendl;}4. 范围for循环C11简洁C11引入范围for循环自动遍历容器语法更简洁。需注意遍历的元素是std::pairconst Key, T的引用避免拷贝。// 范围for可读可写通过引用for(autopair:myMap){// auto 推导为 pairconst int, stringcout键pair.first值pair.secondendl;// 可修改值pair.second new_value;}// 范围for只读通过const引用for(constautopair:myMap){cout键pair.first值pair.secondendl;}5. 结构化绑定 范围forC17更直观C17的结构化绑定可直接将键值对拆分为键和值变量无需通过pair.first/second访问代码更清晰。// 结构化绑定C17直接获取键和值for(auto[key,value]:myMap){// key 对应 firstvalue 对应 secondcout键key值valueendl;// 可修改值value new_value;}// 只读版本for(constauto[key,value]:myMap){cout键key值valueendl;}6. std::for_each 算法函数式风格C11结合algorithm库的std::for_each和 lambda 表达式适合需要对元素执行特定操作的场景。#includealgorithm// 需包含此头文件// 使用std::for_each lambdastd::for_each(myMap.begin(),myMap.end(),[](autopair){cout键pair.first值pair.secondendl;});总结基础场景优先用范围for循环C11或结构化绑定C17简洁直观。需修改迭代器位置如中途跳过元素用普通迭代器。逆序遍历用反向迭代器。只读场景加const修饰const_iterator或const auto。函数式操作用std::for_each结合 lambda。注意std::map的键是const类型任何遍历方式都不能修改键只能修改值除非用只读方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询