c++9 如何遍历map数组
时间: 2023-07-04 11:17:23 浏览: 102
在C++11标准中,可以使用`range-based for loop`语法来遍历`map`数组,这种语法可以让代码更加简洁易读。下面是一个例子:
```c++
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
// 创建一个map数组
map<string, int> myMap = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
// 遍历map数组
for (auto& [key, value] : myMap)
{
cout << key << " : " << value << endl;
}
return 0;
}
```
在这个例子中,我们使用`range-based for loop`语法遍历了整个`myMap`数组,并输出了其中的键和值。需要注意的是,这里使用了`auto&`来引用迭代器,而`[key, value]`则表示每次循环都会自动解包出当前键值对的键和值。这样,我们就可以直接使用`key`和`value`来访问当前键值对的键和值了。
`range-based for loop`语法不仅可以用于遍历`map`数组,还可以用于遍历其他容器类型,例如`vector`、`list`、`set`等等。
相关问题
c++ 如何遍历map数组
在C++中,要遍历一个`map`数组,可以使用迭代器来实现。`map`是一个关联容器,其元素是按照键值对存储的,因此遍历`map`数组就是遍历其中的键值对。
下面是一个简单的例子,展示如何遍历一个`map`数组:
```c++
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
// 创建一个map数组
map<string, int> myMap = {{"apple", 1}, {"banana", 2}, {"orange", 3}};
// 遍历map数组
for (auto iter = myMap.begin(); iter != myMap.end(); ++iter)
{
cout << iter->first << " : " << iter->second << endl;
}
return 0;
}
```
在这个例子中,我们首先创建了一个`map`数组`myMap`,其中包含了三个键值对。然后,我们使用迭代器遍历了整个`myMap`数组,并输出了其中的键和值。
在遍历`map`数组时,`iter->first`表示当前迭代器指向的键,`iter->second`表示当前迭代器指向的值。注意,这里使用了`auto`关键字来自动推断迭代器的类型,这样可以让代码更加简洁。
c++ 迭代器遍历map数组
在C++中,我们可以使用迭代器来遍历map数组。map的迭代器是一个指向pair对象的指针,pair的第一个元素是key,第二个元素是value。
以下是一个简单的例子:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, int> m {{"one", 1}, {"two", 2}, {"three", 3}};
// 使用迭代器遍历map
for (auto it = m.begin(); it != m.end(); ++it) {
cout << it->first << ": " << it->second << endl;
}
return 0;
}
```
输出结果为:
```
one: 1
three: 3
two: 2
```
可以看到,我们使用迭代器遍历了整个map数组,并输出了每个key-value对的内容。需要注意的是,map是按照key的大小进行排序的,因此遍历的顺序可能与插入的顺序不同。
阅读全文