21xrx.com
2024-09-17 04:07:20 Tuesday
登录
文章检索 我的文章 写文章
如何按顺序遍历C++的map数据结构?
2023-07-08 03:58:41 深夜i     --     --
C++ map 遍历 顺序

在C++中,map是一种基于红黑树的数据结构,可以用来存储键值对。由于map内部实现了一棵二叉搜索树,因此在遍历时需要保证严格按照键的大小顺序进行。

以下是一些遍历map的方法:

1.使用迭代器

map提供了begin()和end()函数,可以返回一个指向map头部和尾部的迭代器,因此可以通过迭代器遍历map。


#include <iostream>

#include <map>

int main()

{

  std::map<int, std::string> mapObj = {1, "two", "three"};

  std::map<int, std::string>::iterator it;

  for (it = mapObj.begin(); it != mapObj.end(); ++it)

    std::cout << it->first << " " << it->second << std::endl;

  

  return 0;

}

上述代码可以遍历整个map,并输出每个键值对,输出结果如下:


1 one

2 two

3 three

2.使用范围循环

C++11引入了范围循环(for-each loop),可以使用auto关键字来自动推断循环变量的类型,进而遍历整个map。


#include <iostream>

#include <map>

int main()

{

  std::map<int, std::string> mapObj = {1, "two", 3};

  for (auto const& pair : mapObj)

    std::cout << pair.first << " " << pair.second << std::endl;

  

  return 0;

}

输出结果与前面的方法一致。

遍历map要按照键的大小顺序进行,因此在插入元素时应该按照顺序插入,或者在遍历时通过key_comp()函数比较键的大小,并保证输出顺序。

总结而言,遍历C++的map数据结构有两种方法:使用迭代器和使用范围循环。由于map内部是基于二叉树实现的,因此需要按照键的大小顺序进行遍历。

  
  

评论区

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