如何从std :: map类型结构中获取数据?

时间:2016-05-06 08:18:59

标签: dictionary iterator std

首先,非常感谢帮助我并阅读这篇文章。

我有这样的结构:x,y。 我有一张数据是该结构的地图。 我想从iterator [1]得到.x获取数据。 我怎么能这样做?

非常感谢。

2 个答案:

答案 0 :(得分:0)

如果您有一个指向it元素的迭代器std::map<X, Y>,那么您可以使用it->first获取对该键的const引用,并使用{{{}获取对映射类型的引用1}},因为it->second指向类型为

it
std::map<X, Y>::value_type

例如:

std::pair<std::map<X, Y>::key_type const,
          std::map<X, Y>::mapped_type>

答案 1 :(得分:0)

#include <map>
#include <iostream>
#include <string>
using namespace std;


int main()
{
    // for a simple struct you could use "pair" (especially if you don't want to name it).
    // anyway:
    map<int, pair<double, string>> mymap;
    mymap[0] = pair<double, string>(4.56, "hello");
    mymap[1] = pair<double, string>(9.87, "hi");
    for(auto & item : mymap)
    {
        cout << "Key: " << item.first << ", Value: [" << item.second.first << ", " << item.second.second << "]" << endl;
    }
    return 0;
}

输出:

键:0,值:[4.56,你好]

关键:1,价值:[9.87,hi]