当前位置: 首页 > 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/303209.html

相关文章:

  • 做外贸没网站可以吗淘宝seo优化是什么意思
  • 广东建设集团有限公司网站关键词优化推广哪家快
  • 用于网站建设的费用怎么备注网络营销的概念是什么
  • 做网站用什么开源程序网上如何推广产品
  • 网站运营管理报告总结近三天时政热点
  • 万州医院网站建设河南seo关键词排名优化
  • 宁乡网站建设uuv9产品推广公司
  • 企业展示型网站源码富阳网站seo价格
  • 阿里国际网站官网入口网站优化推广排名
  • 广东省建设工程协会网站秦皇岛seo优化
  • 电子产品网站建设 实训报告济南seo关键词优化方案
  • 衡量网站质量的标准网站要怎么创建
  • 东莞网页建设网站北京百度科技有限公司电话
  • wordpress改域名修改哪里长沙seo外包
  • seo网站推广助理招聘互联网网站
  • 网站建设哪家公司好一点今日新闻最新事件
  • 网站开发代码百度经验官网首页
  • 网站做产品的审核吗网上推广培训
  • 温州网站制作建设sem是什么岗位
  • 注册功能网站建设电商平台有哪些?
  • 网站建设微金手指下拉15东莞网络推广哪家公司奿
  • 哪个网站可以做加工代理的推广活动策划方案范文
  • 有没有交流做服装的网站上海网站建设联系方式
  • 天津建设网站官网潍坊seo按天收费
  • 蔚县网站建设广告公司推广
  • 书籍教你如何做网站网站设计公司官网
  • 数字镭网站开发关键词投放
  • 可以做样机图的网站seo网站建设优化
  • 短视频网站怎么建设广告关键词排名
  • 室内设计平面图怎么画企业网站怎么优化