21xrx.com
2024-06-02 23:33:00 Sunday
登录
文章检索 我的文章 写文章
C++ Map的遍历方法
2023-07-08 21:30:53 深夜i     --     --
C++ Map 遍历 方法

C++中的Map是一种关联式容器,用于存储键值对,键和值都可以是任何类型。Map中的元素按照键的值进行自动排序,且每个键值对都是唯一的。由于Map中的元素是有序的,因此遍历Map是非常重要的。本文将介绍Map的遍历方法。

1. 迭代器遍历

在C++中,容器的迭代器是一种方便的遍历工具。Map也提供了两种迭代器:begin和end。其中,begin()返回的是指向Map的第一个元素的迭代器,而end()返回的是指向Map的最后一个元素之后的迭代器。

遍历Map的方法如下:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string> myMap;

  myMap.insert(pair<int, string>(1, "apple"));

  myMap.insert(pair<int, string>(2, "banana"));

  myMap.insert(pair<int, string>(3, "cherry"));

  myMap.insert(pair<int, string>(4, "orange"));

  map<int, string>::iterator iter;

  for (iter = myMap.begin(); iter != myMap.end(); iter++)

    cout << iter->first << " ";

    cout << iter->second << endl;

  

  return 0;

}

上述代码中,创建了一个存储int类型键和string类型值的Map对象。使用insert()方法向Map中添加了4个元素。然后使用迭代器进行遍历,在循环中,迭代器的指针指向第一个元素,然后一步步向后移动,直到指向Map的最后一个元素之后的迭代器。

2. 范围遍历

C++11引入了一种新的遍历方式,叫做范围遍历。使用此方法,可以用一种更紧凑的方式遍历Map。

遍历Map的方法如下:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string> myMap;

  myMap.insert(pair<int, string>(1, "apple"));

  myMap.insert(pair<int, string>(2, "banana"));

  myMap.insert(pair<int, string>(3, "cherry"));

  myMap.insert(pair<int, string>(4, "orange"));

  for (auto& kv : myMap)

    cout << kv.first << " ";

    cout << kv.second << endl;

  

  return 0;

}

上述代码中,使用auto& kv : myMap语句,将Map中的每个键值对作为一个kv变量来遍历,实现了遍历Map的目的。

以上就是C++ Map的遍历方法,使用迭代器和范围遍历两种方式,可以遍历Map中的所有元素。使用Map的遍历方法,可以简单高效地获取Map中的元素,并进行各种处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复