📜  c++ map 循环遍历键值 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:50.083000             🧑  作者: Mango

C++ Map循环遍历键值

在C++中,std::map是一种关联容器,可将键和值进行映射。当我们需要遍历std::map并访问其键值对时,可以使用不同的方法来实现。

方法一:使用迭代器遍历

我们可以使用迭代器来遍历std::map的所有键值对。以下是一个使用迭代器的示例代码:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "Apple";
    myMap[2] = "Banana";
    myMap[3] = "Orange";

    // 使用迭代器遍历键值对
    for (auto it = myMap.begin(); it != myMap.end(); ++it) {
        std::cout << it->first << ": " << it->second << std::endl;
    }

    return 0;
}

以上代码首先创建了一个std::map对象myMap,并向其添加了几个键值对。接下来,使用迭代器itmyMap.begin()开始遍历到myMap.end(),并通过it->firstit->second分别访问键和对应的值。

方法二:使用范围遍历

C++11引入了范围遍历,使得遍历容器变得更为方便。我们可以使用范围遍历来迭代std::map中的键值对。以下是使用范围遍历的示例代码:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "Apple";
    myMap[2] = "Banana";
    myMap[3] = "Orange";

    // 使用范围遍历键值对
    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

以上代码中,我们使用了范围遍历来遍历myMap中的键值对。const auto& pair表示每个键值对的类型,我们可以通过pair.firstpair.second分别访问键和对应的值。

无论是使用迭代器还是范围遍历,都可以完成对std::map的遍历,并访问其键值对。

请注意,std::map是按照键的顺序进行排序的,因此遍历时的顺序将按照键的排序顺序。

希望以上内容对你有所帮助!