当前位置: 首页 > wzjs >正文

手机网站加百度地图哪里可以做免费的物流网站

手机网站加百度地图,哪里可以做免费的物流网站,为什么我自己做的网站搜索不到,响水做网站哪家最好在C中遍历unordered_map可以通过多种方式实现,下面详细介绍常用的遍历方法及其特点: 一、使用迭代器遍历(最常用) unordered_map的迭代器是双向迭代器,可以通过begin()和end()获取迭代器范围。 1. C11前的传统写法 …

在C++中遍历unordered_map可以通过多种方式实现,下面详细介绍常用的遍历方法及其特点:

一、使用迭代器遍历(最常用)

unordered_map的迭代器是双向迭代器,可以通过begin()end()获取迭代器范围。

1. C++11前的传统写法
#include <unordered_map>
#include <string>
#include <iostream>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}, {3, "three"}};// 声明迭代器类型为unordered_map的迭代器std::unordered_map<int, std::string>::iterator it;for (it = umap.begin(); it != umap.end(); ++it) {std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;}return 0;
}
2. C++11及以后的auto简化写法
#include <unordered_map>
#include <string>
#include <iostream>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}, {3, "three"}};// 使用auto自动推导迭代器类型for (auto it = umap.begin(); it != umap.end(); ++it) {std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;}return 0;
}
3. 基于范围的for循环(C++11)
#include <unordered_map>
#include <string>
#include <iostream>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}, {3, "three"}};// 直接遍历元素,item是pair的引用for (auto& item : umap) {std::cout << "Key: " << item.first << ", Value: " << item.second << std::endl;}// 若不需要修改,建议用const引用for (const auto& item : umap) {std::cout << "Key: " << item.first << ", Value: " << item.second << std::endl;}return 0;
}

二、遍历键或值

1. 仅遍历键
#include <unordered_map>
#include <iostream>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}, {3, "three"}};for (const auto& key : umap) {std::cout << "Key: " << key.first << std::endl;}return 0;
}
2. 仅遍历值
#include <unordered_map>
#include <iostream>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}, {3, "three"}};for (const auto& value : umap) {std::cout << "Value: " << value.second << std::endl;}return 0;
}

三、使用迭代器遍历的注意事项

  1. 无序性unordered_map基于哈希表实现,遍历时元素顺序是无序的,与插入顺序无关。
  2. 迭代器失效
    • 添加或删除元素可能导致迭代器失效(除了删除当前迭代器指向的元素)。
    • 删除元素时,建议使用安全的迭代器操作:
      for (auto it = umap.begin(); it != umap.end();) {if (it->first == 2) {it = umap.erase(it);  // erase返回下一个迭代器} else {++it;}
      }
      
  3. const迭代器:若不需要修改元素,使用const_iterator
    std::unordered_map<int, std::string>::const_iterator cit;
    for (cit = umap.begin(); cit != umap.end(); ++cit) {// 仅可读,不可修改
    }
    

四、遍历性能考虑

  • 时间复杂度:遍历unordered_map的时间复杂度为 (O(n)),其中 (n) 是元素数量。
  • 空间复杂度:仅使用迭代器,为 (O(1))。
  • 与有序容器的区别map基于红黑树,遍历时按键的顺序排列;unordered_map遍历时顺序随机。

五、示例:统计字符串中字符出现次数

#include <unordered_map>
#include <string>
#include <iostream>int main() {std::string str = "hello world";std::unordered_map<char, int> count;// 统计字符频率for (char c : str) {count[c]++;}// 遍历输出结果std::cout << "字符频率统计:" << std::endl;for (const auto& pair : count) {std::cout << "字符 '" << pair.first << "': " << pair.second << " 次" << std::endl;}return 0;
}

总结

遍历unordered_map的核心是使用迭代器或基于范围的for循环,推荐使用C++11的auto和引用语法来简化代码。需要注意其无序性和迭代器失效问题,根据场景选择合适的遍历方式。

http://www.dtcms.com/wzjs/801458.html

相关文章:

  • 网站服务费怎么做分录2021年
  • 哪些网站属于官网手机上怎么使用wordpress
  • 域名被墙检测网站今天的新闻联播文字版
  • 好用的网站后台管理系统ppt模板免费下载素材简约
  • 建设官方网站的费用账务处理优化网站的方法有哪些
  • 成都思乐网站建设谁有人和兽做的网站
  • 网站是公司域名是个人可以吗百度开放云搭建网站
  • 网站添加字体wordpress使用php版本
  • shopex 如何看 网站后台哪些网站是做货源的
  • 唐四薪php网站开发答案个人与企业签订网站开发合同
  • 专门做西装网站沧州建设局网站
  • 搜狗提交网站收录入口京东网站建设评估
  • 网站 关键词库刚做的网站适合做外链吗
  • 变性人做网站广西建设网公布名单
  • 广东网站备案网站建设方案书网站建设与开发专业
  • 2015军考网站建设惠济区城乡建设局网站
  • 学校网站建设开发商阿里云域名注册邮箱
  • 校园网站设计毕业设计建设官方网站需要注意什么
  • 网站建设技术网传奇霸业网页游戏开服
  • 做电商网站的设计思路有什么意思资讯类网站建设
  • 网站建设与网页制作技术wordpress apply_filters
  • 网站报价方案上海专业排名优化公司
  • 织梦教育培训网站源码seo 重庆
  • 九江巿建设局网站自己做视频的网站吗
  • 有什么网站可以在线做试题西安的软件公司哪个比较厉害
  • 网站开发与维护都有些什么短剧小程序源码
  • 教育网站制作哪家服务好广州注册公司多少钱
  • 制作网站哪家好会计公司网站模板
  • 网站开发服务器多少钱163邮箱注册
  • 汶上哪个广告公司做网站全运网站的建设