c++ unordered_map4种遍历方式

简介: c++ unordered_map4种遍历方式

首先定义个 unordered_map

unordered_map<int,int> map={
        pair<int,int>(1,2),
        pair<int,int>(3,4)
    };

方式一:值传递遍历

for(pair<int,int> kv:map){
        cout<<kv.first<<kv.second<<endl;
    }

使用auto

for(auto kv:map){
        cout<<kv.first<<kv.second<<endl;
    }

方式二:引用传递遍历

注意:要加const

for(const pair<int,int>& kv:map){
        cout<<kv.first<<kv.second<<endl;
    }

const加里面也是可以的

for(pair<const int,int>& kv:map){
        cout<<kv.first<<kv.second<<endl;
    }

使用auto

for(auto& kv:map){
        cout<<kv.first<<kv.second<<endl;
    }

方式三:使用迭代器遍历

for(unordered_map<int,int>::iterator it=map.begin();it!=map.end();it++){
        cout<<it->first<<it->second<<endl;
    }

使用auto

for(auto it=map.begin();it!=map.end();it++){
        cout<<it->first<<it->second<<endl;
    }

方式四:结构化绑定(c++17特性)

参考链接

值传递

for(auto [k,v]:map){
        cout<<k<<v<<endl;
    }

引用传递

for(auto& [k,v]:map){
        cout<<k<<v<<endl;
    }

其中,如果只想使用键,值可以用_代替

for(auto& [k,_]:map){
        cout<<k<<endl;
    }

同理,如果指向只用值,键可以用_代替

for(auto& [_,v]:map){
        cout<<v<<endl;
    }
相关文章
go语言中遍历映射(map)
go语言中遍历映射(map)
359 8
|
10月前
|
存储 JavaScript 前端开发
for...of循环在遍历Set和Map时的注意事项有哪些?
for...of循环在遍历Set和Map时的注意事项有哪些?
686 156
|
编译器 C++ 容器
【c++丨STL】基于红黑树模拟实现set和map(附源码)
本文基于红黑树的实现,模拟了STL中的`set`和`map`容器。通过封装同一棵红黑树并进行适配修改,实现了两种容器的功能。主要步骤包括:1) 修改红黑树节点结构以支持不同数据类型;2) 使用仿函数适配键值比较逻辑;3) 实现双向迭代器支持遍历操作;4) 封装`insert`、`find`等接口,并为`map`实现`operator[]`。最终,通过测试代码验证了功能的正确性。此实现减少了代码冗余,展示了模板与仿函数的强大灵活性。
345 2
|
10月前
|
安全 Java 数据库连接
让我们讲解一下 Map 集合遍历的方式
我是小假 期待与你的下一次相遇 ~
352 43
|
存储 算法 C++
【c++丨STL】map/multimap的使用
本文详细介绍了STL关联式容器中的`map`和`multimap`的使用方法。`map`基于红黑树实现,内部元素按键自动升序排列,存储键值对,支持通过键访问或修改值;而`multimap`允许存在重复键。文章从构造函数、迭代器、容量接口、元素访问接口、增删操作到其他操作接口全面解析了`map`的功能,并通过实例演示了如何用`map`统计字符串数组中各元素的出现次数。最后对比了`map`与`set`的区别,强调了`map`在处理键值关系时的优势。
696 73
|
11月前
|
存储 安全 Go
Map的遍历与判断键是否存在-《Go语言实战指南》
本文介绍了 Go 语言中对 `map` 的常见操作,包括遍历所有项和判断键是否存在。通过 `for range` 可以遍历 `map` 的键值对、仅键或仅值(需忽略键)。注意,`map` 遍历顺序是随机的。判断键是否存在时,使用双赋值语法 `value, ok := map[key]`,其中 `ok` 表示键是否存在。直接访问不存在的键会返回类型的零值,可能导致逻辑错误。掌握这些机制可更安全高效地处理键值对数据。
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
424 3
【C++】map、set基本用法
|
存储 算法 测试技术
【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
本任务旨在实现二叉树的遍历,包括先序、中序、后序和层次遍历。首先介绍了二叉树的基本概念与结构定义,并通过C++代码示例展示了如何定义二叉树节点及构建二叉树。接着详细讲解了四种遍历方法的递归实现逻辑,以及层次遍历中队列的应用。最后提供了测试用例和预期输出,确保代码正确性。通过这些内容,帮助读者理解并掌握二叉树遍历的核心思想与实现技巧。
629 3
go语言for遍历映射(map)
go语言for遍历映射(map)
526 12

热门文章

最新文章